python-3.x - time.sleep 似乎阻塞了其他线程

标签 python-3.x multithreading

我有一个简单的 Python 3 程序,其中子线程处于休眠状态,并且主线程似乎也被阻塞。为什么sleep不将CPU切换到主线程?

import threading
import time


def hello():
    print('hello')
    while True:
        time.sleep(10000)


threading.Thread(hello()).start()

print('world')

输出:

hello

“世界”这个词从未被打印出来。

最佳答案

您正在使用 hello() 在主线程上调用 hello,这是一个函数调用(因为 ()),不是函数引用。引用(名称)只是 hello

也许可以尝试一下:

threading.Thread(target=hello).start()

关于python-3.x - time.sleep 似乎阻塞了其他线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57567447/

相关文章:

c++ - OpenMP 中的并行合并排序

python - 考虑顺序如何检查列表(字符串)是否包含另一个列表(字符串)

python - Python 3 中的 ModuleNotFoundError 但不是 2

c - 为什么程序永远不会超过 open()?

java - 将单个可运行对象传递给多个线程构造函数

multithreading - hadoop -0.20.0无法处理bin/hadoop namenode-format

java - 如何让 1 个 UI 线程等待另一个 UI 线程

python - 在 PyTorch 中加载用于推理的迁移学习模型的正确方法是什么?

python - 为什么 Python 不在命名空间冲突时引发错误?

python - 绘制烛台(matplotlib)