55.Python进阶_进程05_进程间通信

进程间资源不共享,但是需要操作相同的资源,这个时候需要进程间通信会使用到队列;

multiprocessing.Quene()和queue.Queue()区别:
  • Queue.Queue是进程间通信;用于一个进程中,每个线程之间进行通讯;
  • multiprocess.Queue是跨进程通信队列
注意:
  • 使用时候要通过参数进行传递到各个进程任务之中;
    看一下代码:
from multiprocessing import Process,Queue

q = Queue()  #q作为全局变量
for i in range(1000):
    q.put(i)

def work1(q):
    while not q.empty():
        print('----work1获取数据{}'.format(q.get()))

def work2(q):
    while not q.empty():
        print('----work2获取数据{}'.format(q.get()))

if __name__ == '__main__':
    p1 = Process(target=work1, args=(q,))
    p2 = Process(target=work2, args=(q,))
    p1.start()
    p2.start()

运行部分结果:

----work1获取数据145
----work2获取数据146
----work1获取数据147
----work2获取数据148
----work1获取数据149
----work2获取数据150
----work1获取数据151
----work2获取数据152
----work1获取数据153
----work2获取数据154
----work1获取数据155
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值