GIL理解
来源:互联网 发布:行楷字帖谁的好 知乎 编辑:程序博客网 时间:2024/06/07 10:34
1. python自身未实现底层的线程操作,无法自行调度CPU
由于采用的是系统原生的线程,同时需要将线程纳入自身,为了保证自身独立,自身加锁GIL
内部线程属于自身属性,自身抢占CUP才能进一步分配内部线程,python本身可以看做是一个单线程
多核可同步执行多条线程,但不能同时执行同一个线程,python一次只能运行在一个CPU中
内部多线程也只能运行在该CPU上
2. 本身相当于一个抽象CPU
其他语言实现了底层多线程操作,每条线程可抢占CPU执行,线程执行完毕归于己身,本身就是多线程
python借由原生线程,先进行归类,容纳己身,是python单线程下的多线程,只有这样,python自身才能调度多线程
只有python自身抢占到CPU,内部多线程才能得到执行
因此,python相当于一个特殊的,只处理自身事务的抽象的CPU
只有抢占到执行,才会成为实际工作的CPU,且只能存在一个,且只处理自身内部线程
3. 穷人模型
土豪(实现多线程)家中锅灶多(CPU),孩子吃饭(执行)随便守(多核运行)
屌丝(python)家中无锅灶,借用锅灶(CPU)做饭吃(执行),担心孩子被拐跑(无法实现统一调度管理),一个锅灶(CPU),一人一口(自家调度)
阅读全文
0 0
- GIL理解
- 理解python GIL 全局锁
- 深入理解python多线程与GIL
- 对于python全局性解释锁(GIL)的一些理解
- Use GIL
- python GIL
- GIL学习
- Python GIL
- Python GIL
- python GIL
- 去掉GIL不容易
- 去掉GIL不容易
- 去掉GIL不容易
- GIL并发控制
- python线程和GIL
- Python的GIL
- python GIL 全局锁
- Python的GIL
- 方法传入参数(来自成员变量),在方法中修改参数,退出方法后,是否会改变参数值呢?
- 去除重复字符
- sizeof与数组和指针
- 【自定义View】5.仿探探的卡片滑动效果
- [LeetCode] binary-tree-preorder-traversal
- GIL理解
- DCGAN代码分析
- 虚拟机类加载机制
- 刻意学习笔记以及一周回顾
- Gradle基本使用(5):文件操作
- 无题
- 关于对Spring中AOP的Advice(通知、增强)的属性Around的理解
- mycat2.0内测之配置和启动(随时更新)
- VMware vSphere Web Services SDK编程指南(十)- 10.7 创建及管理 Datastores