【python】关于python的全局解释锁GIL及线程问题
来源:互联网 发布:指定数据库所有者 编辑:程序博客网 时间:2024/05/30 22:51
在讲全局解释锁之前,我们需要先明白 线程 进程的概念。
在进程中有一个或者多个线程。每个进程具有自己的地址空间,内存,数据栈及其它数据。线程有开始、顺序执行和结束部分。线程是cpu调动的,没有自己的资源,所有线程都共享同一进程中的资源。
线程锁:
CPU执行任务时,在线程之间是进行随机调度的,并且每个线程可能只执行n条代码后就转而执行另外一条线程。由于在一个进程中的多个线程之间是共享资源和数据的,这就容易造成资源抢夺或脏数据,于是就有了锁的概念,限制某一时刻只有一个线程能访问某个指定的数据。
为了解决不同线程同时访问统一资源时,数据保护问题,而产生了GIL.
python因为GIL的问题广受诟病,因为它在解释器的层面限制了程序在同一时间只有一个线程被CPU实际执行,而不管你的程序里实际开了多少条线程。所以我们经常能发现,python中的多线程编程有时候效率还不如单线程,就是因为这个原因。
所以在python中并不推荐多线程,而是推荐多进程。
另外 计算密集型推荐多进程,i/o密集型推荐多线程。也是因为防止同一资源占用情况。
0 0
- 【python】关于python的全局解释锁GIL及线程问题
- Python的全局锁(GIL)问题
- python全局解释器锁(GIL)
- python 什么是全局解释器锁GIL
- python基础-GIL全局解释器锁
- python GIL 全局锁
- 关于python全局性解释锁(GIL)
- Python高级特性:全局解释器锁GIL基本概念
- Python 多线程 多进程 全局解释器锁GIL join
- Python全局解释器锁(Global Interperter Lock, GIL)
- 理解python GIL 全局锁
- 关于线程安全的记录以及python GIL
- 线程安全及Python中的GIL
- 线程安全及Python中的GIL
- 线程安全及Python中的GIL
- 线程安全及Python中的GIL
- 对于python全局性解释锁(GIL)的一些理解
- Python 中的 GIL(Global Interpreter Lock) 全局解释器锁是什么?
- 嵌入式C语言经典试题
- 通俗易懂——线程,进程与中断调度
- Spring 和SpringMVC区别
- Ionic学习注意事项01
- Interrupt Service Routines(中断服务程序):ISR
- 【python】关于python的全局解释锁GIL及线程问题
- 队列数组存储Uva Concurrency Simulator
- RecyclerView万能适配器加强版———可选择添加头和尾(含点击事件)
- MyBlog = Hexo + Github
- Lc 2 - Add Two Numbers
- 解决mariadb数据库服务无法开启
- Bit.ly取代TinyURL成为Twitter默认网址缩写服务
- react native 的android环境搭建(for windows7)
- Visual Studio Code 技巧