python 线程sleep 进程也被阻塞了
用循环产生线程,某个线程中调用time.sleep,循环也被停止,必须在该线程sleep之后才能继续产生线程。有没有办法异步?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
用循环产生线程,某个线程中调用time.sleep,循环也被停止,必须在该线程sleep之后才能继续产生线程。有没有办法异步?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
我用thread和threading.thread测试了,都不存在你所说的问题。
time.sleep的c源码(python2.6.8/Modules/timemodule.c: floatsleep函数)我也看了,每一个分支都有Py_BEGIN_ALLOW_THREADS(即允许python解释器运行在其他线程上)。
综上,要么是你的代码写错了,要么是你没有看明白现象——只是你以为没有产生新线程。
应该不会产生你说的问题,子线程start()之后就自己在运行了,和主线程没关系了。子线程里面的sleep不会阻塞其他线程的。