如何更新传递给线程的变量?
How do I update a variable passed onto a thread?
我有主要的 class,运行 是一个线程。我想将一个变量传递给该线程,然后全局更新它。这可能吗?
主要class:
import subThread
param = 'old param'
def Main():
global param
s = subThread.subThread(param)
s.start()
s.join()
print(param)
if __name__ == '__main__':
Main()
子线程:
import threading
class subThread(threading.Thread):
param = ''
def __init__(self, param):
threading.Thread.__init__(self)
self.param = param
def run(self):
self.param = 'new param'
当我运行 Main class时,输出仍然是'old param'。
你只是修改了self.param
,subThread实例的变量,不是全局变量param
。
def Main():
global param
s = subThread.subThread(param)
s.start()
s.join()
param = s.param
print(param)
if __name__ == '__main__':
Main()
我有主要的 class,运行 是一个线程。我想将一个变量传递给该线程,然后全局更新它。这可能吗?
主要class:
import subThread
param = 'old param'
def Main():
global param
s = subThread.subThread(param)
s.start()
s.join()
print(param)
if __name__ == '__main__':
Main()
子线程:
import threading
class subThread(threading.Thread):
param = ''
def __init__(self, param):
threading.Thread.__init__(self)
self.param = param
def run(self):
self.param = 'new param'
当我运行 Main class时,输出仍然是'old param'。
你只是修改了self.param
,subThread实例的变量,不是全局变量param
。
def Main():
global param
s = subThread.subThread(param)
s.start()
s.join()
param = s.param
print(param)
if __name__ == '__main__':
Main()