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

做一个中英文网站的价格/宁波免费建站seo排名

做一个中英文网站的价格,宁波免费建站seo排名,用php做动态网站大作业,wordpress夜间模式插件GIL:global interpreter lock(cpython)在python中,一个线程对应于c中的一个线程。gil使得同一个时刻只有一个线程在CPU上执行字节码(python在执行的时候会将py文件编译成字节码)。同时也预示着无法将多个线…

GIL:global interpreter lock(cpython)
在python中,一个线程对应于c中的一个线程。
gil使得同一个时刻只有一个线程在CPU上执行字节码(python在执行的时候会将py文件编译成字节码)。
同时也预示着无法将多个线程映射到多个CPU上运行,无法体现多CPU的优势。
只要运行一个python进程,里面不管有多少个线程,他都只能运行在一个CPU上。
在其它静态语言里面可以将多个线程映射到多个CPU上。
因此,在python里面,并发就非常受限,python一直在努力的去GIL化。
但是短期内是无法实现的,因为大量的第三方包都是使用cpython来完成的。
当然也有其它的解释器,比如pypi去GIL化。

GIL锁为了线程运行安全,因为多个线程运行,尤其是运行同一段代码的时候,十分容易出错。
所以python在最初的时候就加了一把GIL锁,这使得同一时刻只有一个线程在CPU上执行字节码。
这样保证了某种程度上线程是安全的。python正是由于GIL锁使得多线程的效率不是很高。

虽然同一时刻只有一个线程运行在CPU上,那么是否就意味着编写多线程编码就是安全的了?
就不去考虑线程间的同步了?实际上不是的。
通过下面示例可以知道,GIL锁会在适当的时间释放掉,不会一直占有。

from threading import Thread
from multiprocessing import Processa = 0
def add():global ab = 0for i in range(1000000):a += 1b += 1print("循环次数:",b)def desc():global ac = 0for i in range(1000000):a -= 1c += 1print("循环次数:",c)def task():t1 = Thread(target=add)t2 = Thread(target=desc)t1.start()t2.start()t1.join()t2.join()print(a)if __name__ == "__main__":for i in range(4):p = Process(target=task)p.start()p.join()

如果按照代码的逻辑,那么最终打印的结果都为0。
执行结果:
循环次数: 1000000
循环次数: 1000000
-4652
循环次数: 1000000
循环次数: 1000000
468960
循环次数: 1000000
循环次数: 1000000
-61354
循环次数: 1000000
循环次数: 1000000
196468
我们发现每次的执行结果都不相同,
原因可能有二:
第一,两个任务没有做完,
第二,两个任务之间的变量相互影响,也就是GIL锁在途中被释放掉了。
我们通过打印循环次数说明任务都做完了,那么就只能是GIL锁在任务执行过程中被释放掉了,导致两个任务的a变量相互影响。

当把GIL这把锁交给一个线程之后,他不会等到线程执行完毕之后再释放。
它会根据字节码执行的行数以及时间片,然后把它释放出来。
另外,当GIL遇到IO操作的时候也会释放。也正是由于这个原因,GIL在IO操作频繁的时候非常适用。

转载于:https://www.cnblogs.com/yangmingxianshen/p/11289413.html

http://www.jmfq.cn/news/4886515.html

相关文章:

  • 佛山企业网站建设公司/百度网页版登录首页
  • 做社交网站有哪些/长春网站优化流程
  • 闵行手机网站建设/提高网站排名软件
  • wordpress插件 破解/嘉兴seo外包
  • php动态网站模板/福建seo搜索引擎优化
  • 什么网站做简历模板/小红书推广引流软件
  • 盐城seo网站优化/网络营销的应用
  • 企业网站的建立必要性/百度在线人工客服
  • 商务网站制作工程师/长沙seo培训班
  • 在html中做网站 视频/百度浏览器app下载
  • 做资讯网站需要什么条件/域名备案
  • 信誉好的邯郸网站建设/搜索引擎推广一般包括哪些
  • 注册了网站怎么建设/浏览器里面信息是真是假
  • 微信网页开发教程/搜索引擎优化人员优化
  • 做网站推广都有哪些行业/seo研究中心怎么样
  • 坪山模板网站建设公司/线上宣传渠道
  • 申请网站服务器/全国推广优化网站
  • 工商网企业信息查询/长沙百度推广排名优化
  • 电子商务网站开发开发背景/seo外包公司专家
  • 西安公司注册网站/短链接购买
  • 什么网站可以做高三英语试题/爱网站关键词查询工具
  • 黑马/新乡百度关键词优化外包
  • 大庆网站开发/seo快速收录快速排名
  • 如何使用好单库选品库做网站/市场调研分析报告模板
  • 怎么做网站的域名解析/长春建站服务
  • 什么网站合适做流量/今天今日头条新闻
  • 有个网站做彩盒的/外贸接单网站
  • 教学互动网站开发背景/企业网站建设方案范文
  • 有保障的广州网站建设/茂名seo快速排名外包
  • wx网站开发/重庆seo优化推广