获取对现有线程python的访问权限

时间:2017-01-12 13:29:25

标签: python multithreading

假装有一个脚本可以创建一些测试线程: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')

有可能吗?

1 个答案:

答案 0 :(得分:3)

据我所知,线程无法直接进行交互。它们不仅是不同的线程,而且还在不同的Python进程中运行。

在这种情况下,我认为最简单的解决方案是让列表线程侦听TCP端口,另一个线程写入该端口。

请参阅示例this library