0
以下代碼是否正確? (它初始化一個在其構造函數中啓動一個線程的對象來改變它的狀態)。在線程之間共享類屬性
import threading
import time
class Test():
def __init__(self):
self.a = False
def workload():
self.a = True
self.thread = threading.Thread(target = workload)
self.thread.start()
def display(self):
print self.a
test = Test()
while True:
test.display()
time.sleep(0.1)
它輸出真但我有一個更復雜的測試情況下(即不能輕易地在這裏重現),其中工作量確實要複雜得多的東西(包括睡覺,從管理者隊列中檢索項目),並在那裏程序不會輸出真正的 - 雖然self.a的值在工作負載函數內發生了變化。 Python是否會在主線程和子線程之間創建共享值的臨時副本,並定期「同步」,或者問題出在別處?