目录

Python中的线程为什么不是并行的?GIL是什么?

一、前言:

  • 本次我们主要目标是理解为什么python中的多线程开发效果不咋的。
  • 为什么多线程也不能并行操作。
  • GIL又是什么呢?

二、理解

  • 由于Python解析器的设计,Python中存在有一个全局解析器锁,其限制是在同一时间内,Python解析器只能运行一个线程的代码。
  • 也就是说,即使你在一个进程中使用了多线程开发,在同一时间内,也只有一个线程的代码会被真正的执行,这大大降低了多线程的性能。
  • 从电脑硬件来说,因为同一时间内只有一个线程被执行,所以,即使你是多核CPU,也只能发挥一个核的性能。
  • 当然,我们可以通过多进程+线程+异步IO来发挥我们CPU的最大性能。