首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

生产消费者简略实现

2012-12-25 
生产消费者简单实现#!/usr/bin/pythonimport threadingfrom time import ctime, sleepfrom Queue import Q

生产消费者简单实现

#!/usr/bin/pythonimport threadingfrom time import ctime, sleepfrom Queue import Queuefrom random import randintclass WadeThread(threading.Thread):    def __init__(self, func, args, name=''):        threading.Thread.__init__(self)        self.name = name        self.func = func        self.args = args    def getResult(self):        return self.result    def run(self):        print 'starting', self.name, 'at:', ctime()        self.result = apply(self.func, self.args)        print self.name, 'finished at:', ctime()def produce(queue, loops):    for i in range(loops):        sleep(randint(0, 2))        queue.put('192.168.102.x', 1)        print 'producing object for Q... size now', queue.qsize()def consume(queue, loops):    for i in range(loops):        sleep(randint(2, 5))        o = queue.get(1)        print 'consumed object from Q... size now', queue.qsize()funcs = [produce, consume]def main():    q = Queue(1000)    threads = []    for i in range(len(funcs)):        t = WadeThread(funcs[i], (q, 10))        threads.append(t)    for i in range(len(funcs)):        threads[i].start()    for i in range(len(funcs)):        threads[i].join()if __name__ == '__main__':    main()

热点排行