講解看**吧 把例子記一下
1.用fork建立程序
importosprint
"process (%s) start...
" %os.getpid()
pid =os.fork()
if pid ==0:
'i am child process (%s) and my parent is %s
' %(os.getpid(), os.getppid())
else
:
'i (%s) just created a child process (%s)
' % (os.getpid(), pid)
2.用process建立程序
importosfrom multiprocessing import
process
defrun_proc(name):
'run child process %s (%s)...
' %(name, os.getpid())
if__name__ == '
__main__':
'parent process %s.
' %os.getpid()
p = process(target = run_proc, args=('
test
',))
'process will start
'p.start()
p.join()
'process end
'
3.程序池pool
from multiprocessing importpool
import
os, time, random
deflong_time_task(name):
'run task %s (%s)...
' %(name, os.getpid())
start =time.time()
time.sleep(random.random() * 3)
end =time.time()
'task %s runs %0.2f seconds.
' % (name, (end -start))
if__name__ == "
__main__":
'parent process %s.
' %os.getpid()
p = pool(9) #
指定同時跑9個程序 如果用pool(),則同時跑cpu核數個程序
for i in range(9):
'waiting for all subprocesses done...
'p.close()
p.join()
'all subprocesses done
'
4.用queue實現程序間通訊
from multiprocessing importprocess, queue
import
os, time, random
defwrite(q):
for value in
"abc":
'put %s to queue...
' %value
q.put(value)
time.sleep(random.random())
defread(q):
while
true:
value =q.get(true)
'get %s from queue.
' %value
if__name__ == '
__main__':
q =queue()
pw = process(target=write, args=(q,))
pr = process(target=read, args=(q,))
pw.start()
pr.start()
pw.join()
pr.terminate()
python學習 多程序
程序池概念 系統資源分配的最小單位,依賴於程序 特點 檢視程序方法 win 任務管理器 linux top htop ps aux 檢視程序號os.getpid os.getppid 檢視父程序的id 建立 multiprocessing模組process類建立乙個物件 import multipr...
python多程序 python多程序
當有多個非相關任務需要處理時,並行能大大提高處理速度。這裡簡要介紹python的multiprocessing模組。簡單多程序編寫 當我們任務數量確定而且比較少的時候,可以手動為每個任務指定乙個程序來執行。import multiprocessing as mp def f a print a if...
python多程序 Python多程序實踐
建立程序方式如下 可以通過lock鎖機制實現共享鎖,但比較常用的方式還是以上這些方式,效率更高,更安全。使用方式 構造 類方法 使用方式 構造 更多型別支援一般使用manager,支援的型別包括list,dict,namespace,lock,rlock,semaphore,boundedsemap...