线程和Python的全局解释器锁没有性能问题。可扩展性?

2024-05-14 04:29:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python的全局解释器锁的性能没有任何问题。我不得不做一些线程安全的事情——尽管有一些常见的建议,GIL并不能自动保证线程安全——但是我有一个通常运行在10个线程以上的程序,其中所有线程都可以在任何时候都处于活动状态,包括在一起。它是一个有点复杂的异步消息传递系统。你知道吗

我了解多处理,甚至在这个程序中使用芹菜,但解决方案将不得不非常复杂,通过这个问题集的多处理工作。你知道吗

我运行的是2.7并且使用递归锁,尽管它们的性能会受到影响。你知道吗

我的问题是:我是否会遇到GIL的缩放问题?到目前为止,我还没有看到它的性能问题。测量这个…有问题。有没有一些线程或类似的东西,你击中它刚刚开始窒息?GIL的性能与在单核CPU上执行多线程代码有很大的不同吗?你知道吗

谢谢!你知道吗


Tags: 代码程序系统cpu解决方案性能全局事情
1条回答
网友
1楼 · 发布于 2024-05-14 04:29:32

GIL是一个复杂的主题,没有代码就很难解释具体的行为。所以我不能告诉你将来你是否会遇到麻烦。如果可以的话,我可以建议您使用最新版本的python3。python3中对GIL做了许多改进。你知道吗

这和Python将中断的线程的神奇数量完全不同。一般的规则是:线程越多,问题就越多。最复杂的是从1到2。你知道吗

GIL在某些情况下被释放,特别是在执行C代码或完成I/O时。这允许代码并行运行。使用现代CPU的高级功能,将代码限制为一个CPU是不明智的。你知道吗

相关问题 更多 >