1樓:曲奇
對於兩個程序使用 queue 傳資料的情況,乙個是 producer,乙個是 consumer,當 producer 程序結束時,往 queue 裡 put(None);而 consumer 端對於 get() 的資料都要判斷,如果是 None,則結束。
from
multiprocessing
import
Process
,Queue
import
time
defproducer(q
):foriin
range(5
):q.put(i
)time
.sleep(1
)q.put
(None
)def
consumer(q
):while
True
:data=q
.get
()if
data
isNone
:break
(data
("end")if
__name__
=='__main__':q
=Queue
()p1
=Process
(target
=producer
,args=(
q,))p2=
Process
(target
=consumer
,args=(
q,))p1.
start
()p2
.start
()p1
.join
()p2
.join()
作業系統多程序多執行緒的相關問題?
彩鈴 不是真正大神,隨便水一發.1.現代的OS基本以執行緒為排程單位,簡單來說也就是執行緒開越多,CPU占用越大.如果以程序為排程單位的OS,也可以實現執行緒,使用者級執行緒,線段排程等由使用者 庫檔案 編寫.這樣的話多少個執行緒CPU占用一樣.2.會.執行緒切換和程序切換,在操作還是有較大區別的....
python多執行緒爬蟲設計?
深海淺港少女與夢 使用多執行緒是因為get頁面所需時間非常長,是後面步驟的幾十上百倍,所以,後面的步驟用不用多執行緒都不是問題。另外 node crawler寫爬蟲好寫不累,一口氣寫5個不喘氣,誰用誰知道! 笑虎 假設乙個爬蟲步驟分為 獲取,解析,儲存。那麼在設計多執行緒爬蟲時應該是乙個執行緒完成這...
Python 多執行緒效率不高嗎?
小強很忙忙 python受到GIL保護,在同一時刻,只有一條執行緒可以向前執行。原因 python的標準實現是cpython,在執行python程式時為了防止cpython受到先佔式多執行緒切換,破壞直譯器的狀態,所以加上GIL 全域性鎖直譯器 來保持位元組碼直譯器的協調性。之所以支援多執行緒 1....