gpt4 book ai didi

python - 操作系统(任何操作系统或至少是 Linux)会自动在内核之间分配启动的线程吗?

转载 作者:行者123 更新时间:2023-12-01 07:43:07 37 4
gpt4 key购买 nike

我正在编写并发软件,在我阅读了所有文档之后,我确信多线程模块(与 asyncio 相同)绑定(bind)到单个 python 进程和运行它的单个核心。

但最近我的同事说,在一些来源(他找不到确切的链接)中,他发现操作系统会自动在可用核心之间分配由 python 生成的线程。我听说操作系统可以管理线程,但找不到有关 python 线程行为的明确信息,现在我对此表示怀疑。

那么,操作系统是如何控制Python线程的呢?

例如,https://realpython.com/async-io-python/ ,或https://medium.com/contentsquare-engineering-blog/multithreading-vs-multiprocessing-in-python-ece023ad55a指出对于多核使用,需要多处理模块。

抱歉,我没有清楚描述问题的片段

最佳答案

对于默认的 python 实现,答案是否定的。由于全局解释器锁,Python 中的多个线程实际上并不同时执行,而是依次执行指令。根据Python Wiki ,使用 GIL 是因为 python 的内存管理不是线程安全的,这意味着如果两个操作同时运行可能会导致问题。

一些自定义实现(例如 Jython 和 IronPython)不使用 GIL,因此应该能够利用多核处理器,但是使用 GIL 的实现却只能使用单核。

关于python - 操作系统(任何操作系统或至少是 Linux)会自动在内核之间分配启动的线程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56592445/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com