我所处的情况是,我有两个端点,我可以要求一个值,其中一个可能比另一个更快。对端点的调用被阻塞。我想等待其中一个完成,然后在不等待另一个完成的情况下获取结果。你知道吗
我的解决方案是在不同的线程中发出请求,并让这些线程在完成时将标志设置为true。在主线程中,我不断地检查标志(我知道这是一个繁忙的等待,但这不是我现在最关心的问题),当一个线程完成时,它接受该值并返回它作为结果。你知道吗
我的问题是,我从来没有清理其他线程。如果不使用.join()
,我找不到任何方法来实现它,这只会阻碍和挫败整个事情的目的。那么,如何清理另一个阻塞的、速度较慢的线程,而不从主线程连接它呢?你知道吗
您想要的是使您的线程
daemon
,因此当您得到结果并完成main时,另一个正在运行的线程将被迫完成。您可以将daemon
关键字更改为True
:从^{} 文档:
尽管:
我对
Event
没有什么特别的经验,所以不能详细说明。请随意点击链接继续阅读。你知道吗一个糟糕而肮脏的解决方案是为关闭阻塞的套接字的线程实现方法。现在您必须在主线程中捕获异常。你知道吗
相关问题 更多 >
编程相关推荐