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的时间就浪费了。这就是多
线程的优势。
- Python
- Python
- Python
- python
- Python
- PYTHON
- Python
- Python
- Python
- Python
- Python
- Python
- Python
- Python
- Python
- Python
- python
- Python
- 7. 网络流算法--Ford-Fulkerson方法及其多种实现
- css中margin和padding的使用
- GCC编译选项--"-fno-strict-aliasing"
- sql 语法之with name as
- 一个清华学子写的关于directshow的学习心得。8错。
- python
- wince 内核中加入动态库并将头文件,lib文件加入到sdk中
- for循环 i++和++i 的区别
- int,NSInteger,NSUInteger,NSNumber
- plsql 类似Java中的split方法 字符串分割
- Ubuntu下安装和配置Apache2
- 编程:extern 用法 C、C++
- 确定wifi网卡是否支持hostap
- uml 用例图