假设我有两种类型的线程
每x分钟运行一次的单线程。我们称之为线程
多线程一直在运行。B线程当一个线程执行某个操作()时,我希望所有的B线程等待完成,然后恢复它们。我不知道该用什么。
我试着使用threading.Condition
,wait()
/notifyAll()
,但它没有按我想要的那样工作。一旦我把条件放进去,它就会像synco线程一样一个接一个地处理。我要他们自由奔跑。你知道吗
这是一个示例代码,我试着把它们wait()
,然后通知它们,但它会像join()
那样逐个执行。不知道我们怎么了。你知道吗
class ...
check = True
def xxx(self,g,con):
for i in range(3):
with con:
if self.check:
con.wait()
self.check = False
time.sleep(3)
print(g)
con = threading.Condition()
threading.Thread(target=xxx,args=('a',con,)).start()
threading.Thread(target=xxx,args=('b',con,)).start()
threading.Thread(target=xxx,args=('c',con,)).start()
time.sleep(2)
con.notifyAll()
本例不使用
threading.Condition()
,而是使用threading.Barrier(...)
。你知道吗从
docs.python.org
使用的模块:用Python:3.5测试
相关问题 更多 >
编程相关推荐