为什么有人说 Python 的多线程是鸡肋

2025-04-02 12:53:38
推荐回答(1个)
回答1:

因为Python的全局解释器锁(Global Interpreter Lock,GIL)强制要求Python只能在一个解释器中进行,也就是说即使你有多个处理器,Python也只能使用其中的一个,线程实际上是在串行运行。如果只有一个处理器,那么Python的线程和其他语言没什么区别,但如果有两个及以上就不同了,其他语言可以使用所有处理器,但Python只能使用一个。
假如在单核处理器中,Python的效率可以达到百分之百,那么在双核处理器中,它的效率只有百分之五十,因为它只能使用一个处理器,另一个是闲置的,效率并没有因为多了一个处理器而得到提高,所以说Python的多线程有点鸡肋。
除非可以去除GIL,否则应该尽量避免使用Python的多线程。
注:另外很多任务是可以用Python的协程来完成的,用协程来代替多线程是个不错的选择