【发布时间】:2016-07-23 12:59:51
【问题描述】:
我有一个运行线程的主类。我想将一个变量传递给该线程,然后全局更新它。这可能吗?
主类:
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 类时,输出仍然是“旧参数”。
【问题讨论】:
-
在
subThread.run中,你并没有改变param,而是self.param,所以它没有做你认为它应该做的事情。
标签: python multithreading pass-by-reference python-multithreading