当前位置: 首页 > news >正文

六盘水市网站建设_网站建设公司_服务器部署_seo优化

中山祥云网站建设,注册安全工程师建设工程网站,网站标签制作,wordpress 知更GIL是解释器内部的一把锁#xff0c;确切一点说是CPython解释器内部的一把锁#xff0c;所以要注意区分 这和我们在Python代码中使用线程锁Lock并不是一个层面的概念。1. GIL产生的背景:在CPython解释内部运行多个线程的时候#xff0c;每个线程都需要解释器内部申请相应的全…GIL是解释器内部的一把锁确切一点说是CPython解释器内部的一把锁所以要注意区分 这和我们在Python代码中使用线程锁Lock并不是一个层面的概念。1. GIL产生的背景:在CPython解释内部运行多个线程的时候每个线程都需要解释器内部申请相应的全局资源由于C语言本身比较底层造成CPython在管理所有全局资源的时候并不能应对所有线程同时的资源请求因此为了防止资源竞争而发生错误对所有线程申请全局资源增加了限制-全局解释器锁。言外之意就是全局解释器就是为了锁定整个解释器内部的全局资源每个线程想要运行首先获取GIL而GIL本身又是一把互斥锁造成所有线程只能一个一个one-by-one-并发-交替的执行。2. GIL什么时候释放在当前线程执行超时后会自动释放在当前线程执行阻塞操作时会自动释放当前执行完成时Python之父在观点的最后部分说明 the language doesnt require the GIL -- its only the CPython virtual machine that has historically been unable to shed it.解释来说就是Python语言和GIL没有半毛钱关系。仅仅是由于历史原因在Cpython虚拟机(解释器)难以移除GIL3. 严重问题: 既然CPython解释存在GIL是否意味每个线程在全局变量就不用加Lock互斥锁了呢这是一个严重错误的想法为什么用户操作全局数据还需要加Lock因为GIL的释放时机我们无法控制-操作非常可能并没有完成而不像Lock那样我们用完才释放(操作完整)。正因为解释器锁的原因导致python的多线程说到底还是单线程每个线程在执行的过程都需要先获取GIL保证同一时刻只有一个线程可以执行代码。所以就算使用多线程其实还是一个线程在工作但是由于在在IO操作等可能会引起阻塞会暂时释放GIL,执行完毕后,再重新获取GIL所以在进行IO等操作时的运行速度还是要比单线程速度快。但是在运行计算密集型的程序时需要使用CPU进行大量的计算但由于GIL锁的性质导致程序巡行中始终都是一个CPU进行计算所以计算速度及其缓慢运行此类的程序不推荐使用线程有两种方式解决使用多进程的方式避免GIL锁的约束使用其他运行速度较快的语言模块例如C语言
http://www.ihoyoo.com/news/58702.html

相关文章:

  • 台州网络建站模板wordpress获取page id
  • 音乐网站建设方案开发一个网站需要哪些技术
  • 网站开发环境集成安装包广东网站备案查询系统
  • 登录网站怎么做电脑网站怎么做
  • 中学加强校园网站建设商业空间设计特点
  • 麻城建设网站天津网站建设技术外包
  • 有那个网站做简历模板谷歌推广和seo
  • 怎么自己做公司网站在网站底部给网站地图做链接
  • 网站建设 企业东莞网站建设工作室
  • 企业建站系统还有没有前景可言有经验的网站建设
  • 做响应式网站的框架国家工程建设标准化协会网站
  • 盘锦做网站企业淘宝客返利网站程序
  • 网站上有什么作用成都网站排名
  • 有做网站看病的吗重庆网站制作公司
  • 上海移动网站建设怎么自己做一个软件
  • 怒江州建设局网站企业备案网站西安大雁塔在哪个区
  • flash网站的制作成都网站模板购买
  • 邢台网站建设公司网络营销的特点哪四个
  • 苏州企业网站军事热点事件2022
  • 音乐门户网站模板类豆瓣的模板wordpress
  • 苏州网站优化排名推广内销机械做哪个网站好
  • wordpress公告模板新网站前期如何做seo
  • 网站如何做搜索功能的视频一键生成网址链接
  • 中国公司网站建设方案做音乐网站的栏目
  • 遵化建设局网站呼市网站建设公司
  • 信誉好的品牌网站建设软件开发工具的基础
  • cn域名知名网站学校网站建设方案
  • 江苏网站建设的案例展示3免费做网站
  • 手机网站用什么做公司宣传片制作多少钱
  • 木匠手做网站什么是网络营销含义