我有一个带有2个线程的脚本,下面显示了一个基本示例:
Thread 1:
value = stuff()
if value > 0:
# Code to make something() run
Thread 2:
def something():
# Thread specific task goes here
我需要在线程2中而不是线程1中运行something(),我知道如何与Queue“同步”变量,而且我知道我可以在线程2中放入一个循环,等待条件,然后执行某些事情( ),但这会破坏线程2中的其他内容。
对不起,如果我不清楚,很难解释。谢谢。
答案 0 :(得分:0)
线程2需要有一个用于延迟应用程序的队列,然后线程1可以简单地将其调用添加到此队列中。
队列的内容可以是该函数以及用于调用该函数的args和kwargs的名称或引用。
最后,如果您异步地在promise发生事件的地方等待,最终将使用活动对象模式和promise模式。如果您同步等待,则很可能会锁定被调用线程,然后传递消息,然后阻止该事件,然后被调用线程将设置该事件,然后您将取消阻止并读取结果。