当前位置:  开发笔记 > 编程语言 > 正文

如何最好地唤醒沉睡的Python线程?

如何解决《如何最好地唤醒沉睡的Python线程?》经验,为你挑选了1个好方法。

我的局域网上有一台仪器每隔5-10毫秒发送一个UDP数据包.在我的应用程序中,我有一个读取器线程,它在启动时分配一个带有大缓冲区的套接字,然后进入一个无限循环来读取累积的数据包,解析它们,将它们写入假脱机程序,然后休眠半秒钟(time.sleep(0.500)).

我有几个懒惰的数据消费者,其中大多数都存档或生成被动统计数据.但是一个消费者(用于显示)需要最新数据,并且需要在查询假脱机程序之前唤醒睡眠读取器(读取套接字).

唤醒睡眠线程的最佳方法是什么?

(或者,或者,有一种更好的方式让线程更容易被唤醒吗?)



1> BobC..:

我没注意到threading.condition.wait()有一个可选的超时参数!

答案是创建一个条件对象并使用其wait()方法和可选的timeout而不是time.sleep().如果需要在超时之前唤醒线程,请调用条件对象的notify()方法.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有