必威体育Betway必威体育官网
当前位置:首页 > IT技术

multiprocessing.Queue()和queue.Queue()的区别

时间:2019-08-04 10:10:00来源:IT技术作者:seo实验室小编阅读:55次「手机版」
 

queue

from multiprocessing import Pool, Process, queue      

# from Queue import Queue

Queue.Queue是进程内非阻塞队列,multiprocess.Queue是跨进程通信队列。

1.from queue import Queue

这个是普通的队列模式,类似于普通列表,先进先出模式,get方法会阻塞请求,直到有数据get出来为止

2.from multiprocessing.Queue import Queue(各子进程共有)

这个是多进程并发的Queue队列,用于解决多进程间的通信问题。普通Queue实现不了。例如来跑多进程对一批IP列表进行运算,运算后的结果都存到Queue队列里面,这个就必须使用multiprocessing提供的Queue来实现

#child ---child process commucation

from multiprocessing import Process,Queue

import os,time,random

def write(q):

   for value in ['a','b','c']:

       print('put %s to queue..' % value)

       q.put(value)

       time.sleep(random.random())

def read(q):

   while True:

       if not q.empty():

           value = q.get()

           print('get %s from queue' % value)

           time.sleep(random.random())

       else:

           break

if __name__ == '__main__':

   q = Queue()

   pw = Process(target=write, args=(q,))

   pr = Process(target=read, args=(q,))

   pw.start()

   pr.start()

   pw.join()

   pr.join()

   print('all datas have been writen and been read')

如果是用進程池,那麼就需要使用Manager().Queue()隊列才能在各子進程間通信,否則沒用

p = Pool()

   q = Manager().Queue()

   pw = p.APPly_async(write,args=(q,))

   time.sleep(0.5)

   pr = p.apply_async(read,args=(q,))

   p.close()

   p.join()

   print('all datas have been writen and been read')

如果要在manger().Queue()中使用鎖,就要

manager = Manager()

   q = manager.Queue()

   lock = manager.Lock()   #鎖的獲取和釋放都一樣

參考自:https://my.oschina.net/yangyanxing/blog/296052

相关阅读

支付宝怎么选债券基金?债券和基金的区别是什么?

所谓的债券基金,又称为债券型基金,是指专门投资于债券的基金,它通过集中众多投资者的资金,对债券进行组合投资,寻求较为稳定的收益,在支

黑盒测试和白盒测试区别

一、黑盒测试和白盒测试黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。白盒测试:已知产品的内部

经销商,代理商,分销商的区别

经销商,代理商,分销商的区别

left join、inner join、right join的区别

 sql的left join 、right join 、inner join之间的区别  -left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等

UI/UE/ID/UED/UCD的区别

对于刚刚接触用户体验交互设计的同学来说,很多云里雾里的英文缩写,分不清各个概念代表着什么含义,今天给大家做一个简单地介绍。简述

分享到:

栏目导航

推荐阅读

热门阅读