多程序資料共享

2021-10-10 07:48:29 字數 1945 閱讀 9505

不用程序池的多程序的資料共享

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...