python 多程序學習

2021-09-08 19:13:04 字數 2252 閱讀 6586

講解看**吧 把例子記一下

1.用fork建立程序

import

osprint

"process (%s) start...

" %os.getpid()

pid =os.fork()

if pid ==0:

print

'i am child process (%s) and my parent is %s

' %(os.getpid(), os.getppid())

else

:

print

'i (%s) just created a child process (%s)

' % (os.getpid(), pid)

2.用process建立程序

import

osfrom multiprocessing import

process

defrun_proc(name):

print

'run child process %s (%s)...

' %(name, os.getpid())

if__name__ == '

__main__':

print

'parent process %s.

' %os.getpid()

p = process(target = run_proc, args=('

test

',))

print

'process will start

'p.start()

p.join()

print

'process end

'

3.程序池pool

from multiprocessing import

pool

import

os, time, random

deflong_time_task(name):

print

'run task %s (%s)...

' %(name, os.getpid())

start =time.time()

time.sleep(random.random() * 3)

end =time.time()

print

'task %s runs %0.2f seconds.

' % (name, (end -start))

if__name__ == "

__main__":

print

'parent process %s.

' %os.getpid()

p = pool(9) #

指定同時跑9個程序 如果用pool(),則同時跑cpu核數個程序

for i in range(9):

print

'waiting for all subprocesses done...

'p.close()

p.join()

print

'all subprocesses done

'

4.用queue實現程序間通訊

from multiprocessing import

process, queue

import

os, time, random

defwrite(q):

for value in

"abc":

print

'put %s to queue...

' %value

q.put(value)

time.sleep(random.random())

defread(q):

while

true:

value =q.get(true)

print

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