进程间通信-队列

Posted pfeiliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程间通信-队列相关的知识,希望对你有一定的参考价值。

#进程间通信,队列
from multiprocessing import  Process,Queue
import os,sys
import time

q=Queue()
def get(data):
    time.sleep(2)
    print("thread {} get {}".format(os.getpid(),data))

if __name__=="__main__":
    start=time.time()
    l=[]
    for i in range(10):
        p=q.put(i)
    print(q.qsize(),os.getpid(),q.empty())
    while True:
        if q.empty() == False:
            p=Process(target=get,args=(q.get(),))
            l.append(p)
            p.start()
        else:
            break
    for i in l:
        i.join()

    end=time.time()
    print(end-start)
10 12072 False
thread 7140 get 3
thread 14184 get 1
thread 4468 get 0
thread 15604 get 2
thread 12988 get 4
thread 7700 get 5
thread 17272 get 7
thread 10700 get 6
thread 13112 get 8
thread 15756 get 9
2.7655727863311768

 

以上是关于进程间通信-队列的主要内容,如果未能解决你的问题,请参考以下文章

八进程间通信-消息队列

Linux进程间通信(消息队列/信号量+共享内存)

Linux进程间通信(消息队列/信号量+共享内存)

python全栈开发,Day40(进程间通信(队列和管道),进程间的数据共享Manager,进程池Pool)

Linux进程间通信——消息队列

进程间通信——消息队列