python取整取余符号(python中Queue和pipe的差别)
1 、区别
(1)Queue使用 putget维护队列 ,pipe使用 send recv维护队列 。
(2)pipe只提供两个端点 ,而Queue没有限制 。
这意味着在使用Pipe时 ,只能同时启动两个进程 。一个生产者和一个消费者在这两个端点上操作(由pipe()返回的两个值) ,这两个端点一起维护一个队列 。如果多个进程同时在管道的同一个端点上操作 ,就会出现错误(因为没有锁 ,类似于线程不安全) 。因此 ,两个端点相当于只为流程提供两个安全操作位置 ,从而将流程数量限制为只有2个 。
(3)Queue的封装比较好 ,Queue只提供一个结果 ,可以被多个进程同时调用;Pipe()返回两个结果 ,分别由两个进程调用 。
(4)Queue的实现基于pipe ,所以pipe的运行速度比Queue快很多
(5)当只需要两个进程时,管道更快 ,当需要多个进程同时操作队列时 ,使用队列 。
2 、实例
importrandom importtime frommultiprocessingimportProcess,Pipe,current_process defproduce(conn): whileTrue: new=random.randint(0,100) print({}produce{}.format(current_process().name,new)) conn.send(new) time.sleep(random.random()) defconsume(conn): whileTrue: print({}consume{}.format(current_process().name,conn.recv()))time.sleep(random.random()) if__name__==__main__: pipe=Pipe() p1=Process(target=produce,args=(pipe[0],)) p2=Process(target=consume,args=(pipe[1],)) p1.start() p2.start()以上就是python中Queue和pipe的差别,希望能对大家有所帮助 。更多Python学习指路:Python基础教程
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!