码迷,mamicode.com
首页 > 系统相关 > 详细

进程间的通信

时间:2018-08-13 18:10:18      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:队列   queue   def   code   join   pen   col   进程   empty   

进程间的通信方式有 管道,消息队列 ,共享内存,信号(不太会),套接字(用于web)

管道方式:一个放入一个取出

def ps(c,msg):
    print("child start")
    c.send("hello"+str(msg))
    print(os.getpid())
if __name__=="__main__":
    c,pa=Pipe()
    li=[]
    for i in range(5):
        p=Process(target=ps,args=(c,""))
        li.append(p)
        p.start()
    for i in range(5):
        data=pa.recv()
        print(data)
    for i in range(5):
        p.join()

消息队列:先放入消息再取出消息

def ps(c,msg):
    c.put("hello"+str(msg))
if __name__=="__main__":
    q=Queue()
    l=[]
    for i in range(5):
        p=Process(target=ps,args=(q,"_--"))
        l.append(p)
        p.start()
    for i in l:
        i.join()
    while not q.empty():
        print(q.get())

共享内存:

def ps(msg):
    for i in range(5):
        if msg.value==100:
            msg.value=0
        else:
            msg.value=100
        print(msg.value)
        sleep(1)
if __name__=="__main__":
    msg=Value("i",100)
    p1=Process(target=one,args=(msg,))
    p2=Process(target=one,args=(msg,))
    p1.start()
    p2.start()
    p1.join()
    p2.join()

 

进程间的通信

标签:队列   queue   def   code   join   pen   col   进程   empty   

原文地址:https://www.cnblogs.com/wang14339/p/9469606.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!