python 线程sleep 进程也被阻塞了

用循环产生线程,某个线程中调用time.sleep,循环也被停止,必须在该线程sleep之后才能继续产生线程。有没有办法异步?

阅读 19.4k
2 个回答

我用thread和threading.thread测试了,都不存在你所说的问题。

time.sleep的c源码(python2.6.8/Modules/timemodule.c: floatsleep函数)我也看了,每一个分支都有Py_BEGIN_ALLOW_THREADS(即允许python解释器运行在其他线程上)。

综上,要么是你的代码写错了,要么是你没有看明白现象——只是你以为没有产生新线程。

应该不会产生你说的问题,子线程start()之后就自己在运行了,和主线程没关系了。子线程里面的sleep不会阻塞其他线程的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题