python

来源:互联网 发布:windows creation tool 编辑:程序博客网 时间:2024/05/14 16:05

python是单线程语言,

一个python进程同时只有一个线程处于运行中(虽然开了多个物理线程),即最多只能占有CPU的一个核,

所以无法发挥多核CPU的优势。


用全局锁来实现多个线程之间的切换,当线程获得全局锁的时候开始执行,其它线程就等在哪里,

当线程执行一定的二进制代码或者进行IO操作的时候就会释放全局锁。其他线程就可以获得全局锁

开始执行。


个人理解:获得全局锁,执行代码其实就是获得CPU来利用CPU干事,

一个线程从前到后可能是开始和最后的一段时间需要用到CPU,但是如果此时不存在多线程

则他会一直拥有CPU,直到最后需要用到CPU的时候。即中间它不需要利用CPU的时间段它

也是占着不放。而多线程思想是,有其它线程也在等待利用CPU,这个时候不用CPU的线程

就可以把CPU释放掉。去先干别的事情,让需要利用CPU的人先用,等到它其他的事情干完了,

需要用CPU的时候再回来排队,否则其他需要用到CPU的线程非等到它把所有的事情都做完了

退出之后才能获得CPU的使用权。这样,中间一段它不利用CPU的时间就浪费了。这就是多

线程的优势。

原创粉丝点击