Python之多线程(二)对多核的利用及GIL概念

释放双眼,带上耳机,听听看~!

对多核的利用

  • 单核CPU系统中,不存在真正的并发
  • GIL——全局解释器锁
  • GIL只是强制在任何时候只有一个线程可以执行Python代码
  • I/O密集型应用与CPU密集型应用

什么是CPU密集型、IO密集型?

IO密集型应用(IO bound) 对磁盘、硬盘进行读写频繁的应用 IO密集型指的是系统的CPU性能相对硬盘、内存要好很多,此时,系统运作,大部分的状况是CPU在等I

GIL执行顺序

1、设置GIL2、切换进一个线程去运行

3、执行下面操作之一:
指定数量的字节码指令
线程主动让出控制权(可以调用time.sleep(0)来完成)
把线程设置回睡眠状态(切换出线程)

4、把线程设置回睡眠状态(切换出线程)

5、解锁GIL

6、重复上述步骤

人已赞赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧