2017-01-12 3 views
0

Pretend man ein Skript mit ein paar Tests Themen erstellen: test1.pyErhalten Sie Zugang zu den bestehenden Thread Python

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() 

Jetzt laufe ich es python test1.py und dann möchte ich ein anderes Skript test2.py laufen, um zu modifizieren bestehende Test Threads, so etwas wie dies funktioniert, test2.py:

import threading 
thread = somehow_get_access_to_Test_thread() 
thread.alist.append('test') 

ist es möglich?

Antwort

3

Nach meinem Wissen gibt es keine Möglichkeit für die Threads, direkt zu interagieren. Sie sind nicht nur verschiedene Threads, sondern sie laufen auch in separaten Python-Prozessen.

In diesem Fall glaube ich, dass die einfachste Lösung ist, den Listen-Thread auf einen TCP-Port zu hören, und der andere Thread auf diesen Port schreiben.

Siehe zum Beispiel this library.

Verwandte Themen