demon16.1-16.2

#!/usr/bin/env python
# -*- coding:utf-8 -*-
'''多进程的消息队列'''
from multiprocessing import Queue
import multiprocessing
def write(q):
    for i in ['a','b','c','d']:
        q.put(i)
        print('put {0} to queue'.format(i))


def read(q):
    while 1:
        result = q.get()
        #print(result)
        print('get {0} from queue'.format(result))

def main():
    q = Queue()
    pw = multiprocessing.Process(target=write,args=(q,))
    pr = multiprocessing.Process(target=read,args=(q,))
    pw.start()
    pr.start()
    pw.join()
    pw.terminate() #没有消息的时候,结束,不在写入

if __name__ =="__main__":
    main()
 
#!/usr/bin/env python
# -*- coding:utf-8 -*-

'''消息队列pie'''

from multiprocessing import Queue,Pipe,Process
import time

def proc1(pipe):
    for i in xrange(1,10):
        pipe.send(i)
        print('send {0} to pipe'.format(i))

def proc2(pipe):
    n = 9
    while n>0:
        result = pipe.recv()
        print('recv {0} from pipe'.format(result))


def main():
        pipe = Pipe(duplex=False)  ##F为逆向传输,T为双工型,两边都可以传输
        p1 = Process(target=proc1,args=(pipe[1],))
        p2 = Process(target=proc2,args=(pipe[0],))
        p1.start()
        p2.start()
        p1.join()
        p2.join()
        pipe[0].close()   ##关闭
        pipe[1].close()

if __name__ == '__main__':
    main()


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值