1. 多程序佇列 , 只能實現資料互動,不能共享
from multiprocessing importprocess,queue
import
time
import
uuid
class
myprocess(process):
def__init__
(self,q):
super(myprocess,self).
__init__
() self.q=q
defrun(self):
self.q.put(uuid.uuid1())
if__name__ == '
__main__':
q=queue() #
程序佇列
"""由於每個程序都是獨立的空間,所以必須將乙個佇列傳入到每個程序裡面共享
"""p =myprocess(q)
p2=myprocess(q)
p.start()
p2.start()
(q.get())
print(q.get())
2. 雙向管道,只能實現資料互動,不能共享
from multiprocessing importprocess,queue,pipe
import
time
import
uuid
class
myprocess(process):
def__init__
(self,conn):
super(myprocess,self).
__init__
() self.conn=conn
defrun(self):
self.conn.send(
'hello')
data=self.conn.recv() #
沒有 send之前阻塞
(data)
if__name__ == '
__main__':
conn1,conn2=pipe() #
管道"""
由於每個程序都是獨立的空間,所以必須將乙個佇列傳入到每個程序裡面共享
"""p =myprocess(conn1)
p.start()
#***********************************===
data = conn2.recv() #
沒有 send之前阻塞
(data)
conn2.send('ok
')
3. managers, 支援資料共享
from multiprocessing importprocess,queue,pipe,manager
import
time
import
uuid
class
myprocess(process):
def__init__
(self,dic,li,num):
super(myprocess,self).
__init__
() self.dic=dic
self.li=li
self.num=num
defrun(self):
self.dic[
'num%s
'%self.num]=self.num
if__name__ == '
__main__':
with manager() as manager:
dic=manager.dict() #
建立多程序共享字典
li =manager.list() #
建立多程序共享列表
process_list=
for i in range(5):
p=myprocess(dic,li,i)
p.start()
for p in
process_list:
p.join()
(dic)
print(li)
4.5.
6.7.
8.9.
python多程序通訊
這是看書筆記 python提供了多種程序通訊的方式,比如說queue,pipe,value array等。其中queue主要用來在多個程序之間實現通訊。pipe常用來在兩個程序之間實現通訊。queue是多程序安全佇列,queue通過put和get方法來實現多程序之間的資料傳遞。put方法用於將資料插...
python多程序通訊
python 多程序實現 from multiprocessing import import time import os class clockprocess process def init self,interval self.interval interval process.init s...
Python多程序 程序間通訊
1.使用multiprocessing模組建立的程序之間的通訊 coding utf 8 queue類常用屬性和方法 init self,maxsize 1 qsize full empty put obj,block true,timeout none put nowait obj get blo...