pythonQueue和pipe的差别

来源:千锋教育
发布时间:2023-11-14 04:35:59
分享

python中Queue和pipe的差别

1、区别

(1)Queue使用putget维护队列,pipe使用sendrecv维护队列。

(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学习教程请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python高阶函数的判定条件 python高阶函数的判定条件高阶函数听起来好像比函数还要厉害,其实它有着一定的判定条件,即满足其中的一种,我们就可以把它称作是高阶函数了。1、判定条件(1)可以接受函数作为参数(2)可以将函数作为返
  • python函数标注是什么 python函数标注是什么在参数的使用方法中,还有一种解包的情况是需要我们掌握的。比如,将列表或者字典的值转换为函数的参数,就需要用到参数解包的功能。1、说明函数标注是用户在自定义函数中可选的元数据信
  • python参数解包的实现 python参数解包的实现在参数的使用方法中,还有一种解包的情况是需要我们掌握的。比如,将列表或者字典的值转换为函数的参数,就需要用到参数解包的功能。1、*操作符可以用来解包列表和元组。>>>list
  • python函数传递参数的两种方式 python函数传递参数的两种方式1、方法说明向函数传递参数有两种方式,一种是不带关键字的传递,一种是带关键字的传递。非关键词参数的传递一定要在关键词参数传递之前。2、实例*arguments用来接收
  • python参数中默认值的执行 python参数中默认值的执行本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、默认值只会执行一次,如果你传入的参数是可变对象(列表,字典和类实例)的话,我们需要注
  • python序列的数学运算 python序列的数学运算本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、加操作序列的加操作使用加号(+)操作就可以。#序列的加操作print([1,2]+[3,