今晚我一直在把python OpenCV代码变成多线程代码,现在已经完全陷入困境了。
据我所知,我一定是互联网上time.sleep和event.wait不起作用的唯一例子。
我有3个线程,第一个线程查找框,第二个线程判断是否是进行操作的好时机,最后一个线程使用这两个线程对这些信息进行操作。
代码语言:javascript复制def click_boxes():
global list_of_boxes
global player_obj
if (player_obj.status == "idle"):
for box in list_of_boxes:
if box.status == 'fallen':
print(time.time())
time.sleep(1.0)
print("???? , " + str(time.time()))
return None结果在睡眠或等待,没有阻塞/根本没有功能。
如果我想阻止的最后一个click_boxes线程是‘click_boxes()’,我会得到一个函数睡眠/等待,但是它会阻塞整个脚本,因此我失去了多线程的所有好处。
代码语言:javascript复制click_boxes_t = threading.Thread(target=click_boxes, args=())
click_boxes_t.start()
click_boxes_t.join()这听起来可能很愚蠢,但我还没有在互联网上找到答案。如果等待()和睡眠()在多线程场景中不起作用。为什么不行?解决办法是什么?