登录

python 线程sleep 进程也被阻塞了

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

# Python
天蓬老师 天蓬老师 2386 天前 321 次浏览

全部回复(2) 我要回复

  • PHP中文网

    PHP中文网2017-04-17 11:35:57

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

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

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

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 11:35:57

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

    回复
    0
  • 取消 回复 发送