假装有一个脚本可以创建一些测试线程:test1.py
import threading
import time
class Test(threading.Thread):
def __init__(self, name, alist):
threading.Thread.__init__(self)
self.alist = alist
self.name = name
def run(self):
print "Starting thread " + self.name
self.append_to_alist(self.alist)
print "Exiting thread" + self.name
def append_to_alist(self, alist):
for x in range(5):
self.alist.append(alist[-1]+1)
time.sleep(10)
def main():
alist = [1]
# Create new thread
thread = Test("Test thread", alist)
thread.start()
thread.join()
print alist
main()
现在我运行它python test1.py
,然后我想运行另一个脚本test2.py
,以便修改现有的Test
线程正常工作,如test2.py
:
import threading
thread = somehow_get_access_to_Test_thread()
thread.alist.append('test')
有可能吗?
答案 0 :(得分:3)
据我所知,线程无法直接进行交互。它们不仅是不同的线程,而且还在不同的Python进程中运行。
在这种情况下,我认为最简单的解决方案是让列表线程侦听TCP端口,另一个线程写入该端口。
请参阅示例this library。