程序是cpu最小的資源分配的單位。程序之間的資源是不能共享的。但是執行緒之間的資源可以是共享的。下面簡單的介紹兩種方法實現程序之間資源的共享。 1、
queue
方法:#!/
usr/bin/
envpython
#_*_ coding:utf-8 _*_
from multiprocessing import process,queue
deff(q,x):
q.put([x,'hello'
])if __name__ == '__main__'
:q = queue()
q.put('hi'
)for i in range(5):
p = process(target=f,args=[q,i])
p.start()
while
true:
print q.get()
2、manager方法
#!/usr/bin/
envpython
#_*_ coding:utf-8 _*_
from multiprocessing import process,manager
deff(list,dict):
dict[0]=0
dict[1]=1
list.reverse()
if __name__ == '__main__'
:manager = manager()
l = manager.list(range(10))
dict = manager.dict()
p = process(target=f,args=(l,dict,))
p.start()
p.join()
print dict
print l
note:在上面的例項中,主程序開啟了子程序,通過子程序對主程序的資料進行修改之後,在主程序程式進行輸出可以發現,資料發生了修改,本身程序之間的資源是不能共享的,即子程序修改的資料不能應用到主程序,通過
queue
和manager
實現了對資料的修改。
程序的資源共享
程序是放到記憶體中的,程序中所有的計算過程都是需要在cpu處理的。當有多個程序都需要使用共享資源的時候就需要借助乙個中間過程 臨界區 臨界區的使用原則 空則讓進,忙則等待,等則有限,等則讓權 當共享資源沒有被使用的時候就將某個需要使用的程序放到臨界區中,在這段時間中只能是臨界區中的程序可以使用共享資...
python中程序資源共享之queue
在python中程序之間可以用queue佇列實現共享資源。基本方法 queue.queue maxsize 0 fifo,如果maxsize小於1就表示佇列長度無限 queue.lifoqueue maxsize 0 lifo,如果maxsize小於1就表示佇列長度無限 queue.qsize 返回...
Nodejs實現父程序與子程序資源共享
實驗目標 實現父程序與子程序間資源共享 使用模組 cluster 簡介 建立node 集群,實現多程序,利用 child process 來實現ipc 解決多核利用率 提高效能。原理 1 master worker主從模式的多程序架構 2 fork 複製程序,充分利用 cpu資源 根據核心數決定 3...