zoukankan      html  css  js  c++  java
  • python 多线程队列

    ##Using Queue with multiprocessing – Chapter 3: Process Based Parallelism
    import multiprocessing
    import random
    import time
    
    class producer(multiprocessing.Process):
        def __init__(self, queue):
            multiprocessing.Process.__init__(self)
            self.queue = queue
    
        def run(self) :
            for i in range(10):
                item = random.randint(0, 256)
                self.queue.put(item) 
                print ("Process Producer : item %d appended to queue %s"
                       % (item,self.name))
                time.sleep(1)
                print ("The size of queue is %s"
                       % self.queue.qsize())
           
    class consumer(multiprocessing.Process):
        def __init__(self, queue):
            multiprocessing.Process.__init__(self)
            self.queue = queue
    
        def run(self):
            while True:
                if (self.queue.empty()):
                    print("the queue is empty")
                    break
                else:
                    time.sleep(2)
                    item = self.queue.get()
                    print ('Process Consumer : item %d popped from by %s 
    '
                           % (item, self.name))
                    time.sleep(5)
    
    if __name__ == '__main__':
            queue = multiprocessing.Queue()
            process_producer = producer(queue)
            process_consumer = consumer(queue)
            process_producer.start()
            process_consumer.start()
            process_producer.join()
            process_consumer.join()
  • 相关阅读:
    JAVA并发-CountDownLatch
    【转载】Makedown数学公式语法
    算法的时间复杂度
    JVM-卡表(Card Table)
    sync.WaitGroup的使用以及坑
    go 多协程爬取图片
    go ioutial 读取写入文件
    go 下载图片
    go 正则 爬取邮箱代码
    go 解析path
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10193586.html
Copyright © 2011-2022 走看看