Python线程信令

时间:2018-05-04 17:10:18

标签: python multithreading python-3.x

我正在寻找一些使用线程模块在python中实现的帮助。

我有2个线程,让我们说线程1和线程2.

我想要线程1 ---->发信号通知线程2。 并且在线程1终止之前不会终止。

有没有办法可以提供从线程1到线程2的信号。

1 个答案:

答案 0 :(得分:1)

有点不清楚你实际想要完成什么。您可能正在寻找的是 { path: 'home/:rmId/:leadId', canActivate: [SSOAuthGuard], component: ScreenComponent, }, { path: '', component: ErrorPageComponent }, { path: '**', component: ErrorPageComponent }, 等待另一个线程并threading.Thread.join()唤醒另一个线程。

这是一个例子。 threading.Event有一个Thread2对象,它会阻止(通过threading.Event),直到.wait()Thread1该事件。 .set()然后在Thread1上调用.join()以等待它完成。

同样,由于它不是很清楚你想要做什么,这个例子非常人为。

Thread2

打印

import threading


class Thread1(threading.Thread):

    def __init__(self, thread2):
        threading.Thread.__init__(self)
        self.thread2 = thread2

    def run(self):
        print("Hello from thread1 - I'm now running. Let's wake up thread2")
        self.thread2.event.set()
        print("Now thread1 waits for thread2 to quit")
        self.thread2.join()

class Thread2(threading.Thread):

    def __init__(self, event):
        threading.Thread.__init__(self)
        self.event = event

    def run(self):
        print("Hello from thread 2 - I'm now running, but I'll wait for thread1")
        self.event.wait()
        print("Hello from thread 2 - I've just woken up")
        print("Now thread2 is stopping")


thread2_event = threading.Event()
thread2 = Thread2(thread2_event)
thread2.start()

thread1 = Thread1(thread2)
thread1.start()

thread1.join()

print("Everybody done")