亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

可以從新進程中的線程訪問全局變量嗎?

可以從新進程中的線程訪問全局變量嗎?

江戶川亂折騰 2021-12-26 15:12:33
在腳本的主線程中,我設置了一個名為的變量queue并用 URL 填充它。然后我創建了 8 個進程multiprocessing.Process,然后這些進程使用該threading庫產生了 10 個線程。在線程工作者(由上述另一個進程產生)中,我有global queue.然后會queue.get()按預期行動嗎?我試過了,在某些測試中似乎沒問題,而在其他測試中則不然。問題是,可以從另一個進程和線程訪問全局變量嗎?
查看完整描述

1 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

很難理解你到底在問什么。但是這里有兩個主要問題:

可以從另一個進程訪問全局變量嗎?

不,不是沒有某種形式的進程間通信,即使這樣,您也會將該變量的副本傳遞給另一個進程。每個進程都有自己的全局狀態。

可以從另一個線程訪問全局變量嗎?

是的,同一個進程中的線程可以訪問全局變量,但是必須保證多線程訪問的任何內存的安全。這意味著,線程不應與其他線程同時訪問可寫內存,否則您可能會面臨一個線程寫入內存而另一個線程嘗試讀取它的風險。

回答上面的問題

如果我正確理解設置,您的每個子進程都有自己的全局變量queue。每一個都queues應該只能由在該進程中產生的線程訪問。


查看完整回答
反對 回復 2021-12-26
  • 1 回答
  • 0 關注
  • 240 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號