python多執行緒 多程序中如何連續傳輸資料?

時間 2021-06-06 19:59:10

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

;print

(data

)print

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