不用程序池的多程序的資料共享
from multiprocessing import process,queue
queue = queue(
)def
func
(a,q)
: re = f'我是子程序:我放入data'
q.put(re)
if __name__ ==
'__main__'
: ls =
for i in
range(10
):p = process(target=func,args=
(i,queue)
) p.start(
)for x in ls:
x.join(
)print
('**********=我是主程序**********==='
)for i in
range
(queue.qsize())
:print
(queue.get(
))
執行結果:
d:\python3.7.3\python.exe h:/python培訓/day10datasharing/test.py
**********=我是主程序**********===
我是子程序0:我放入data0
我是子程序3:我放入data3
我是子程序2:我放入data2
我是子程序4:我放入data4
我是子程序1:我放入data1
我是子程序5:我放入data5
我是子程序7:我放入data7
我是子程序6:我放入data6
我是子程序8:我放入data8
我是子程序9:我放入data9
process finished with exit code 0
使用程序池的多程序資料共享from multiprocessing import manager,pool
deffunc
(info)
: a,q = info
re = f'我是子程序:我放入data'
q.put(re)
if __name__ ==
'__main__'
: ls =
queue = manager(
).queue(
) p_pool = pool(
) p_pool.
map(func,
[[i,queue]
for i in
range(10
)]) p_pool.close(
) p_pool.join(
)print
('*****====我是主程序**********'
)for i in
range
(queue.qsize())
:print
(queue.get(
))
執行結果:
d:\python3.7.3\python.exe h:/python培訓/day10datasharing/test.py
*****====我是主程序**********
我是子程序0:我放入data0
我是子程序1:我放入data1
我是子程序2:我放入data2
我是子程序3:我放入data3
我是子程序4:我放入data4
我是子程序5:我放入data5
我是子程序6:我放入data6
我是子程序7:我放入data7
我是子程序9:我放入data9
我是子程序8:我放入data8
process finished with exit code 0
Python 多程序 共享資料
coding utf 8 from multiprocessing import process,manager import time import random defkkk a list,number for i in range 10 time.sleep random.randrange ...
python多程序共享資料
python的multiprocessing模組提供兩種共享記憶體,sharedctypes與manager,manager效率較低,但支援遠端共享記憶體。sharedctypes效率較高,快manager兩個數量級,在多程序訪問時與普通記憶體訪問相當 共享方式 支援的型別 shared memor...
多程序檔案共享
一種方法是使用檔案鎖,利用fcntl函式對於檔案進行加鎖解鎖操作,以達到互斥訪問的目的,但是在控制時需要注意程序之間的關係,在有多個程序和共享資源時,應注意死鎖的避免。上乙個最開始寫的程式吧,簡單,就是兩個程序互斥訪問檔案。include include include include void r...