学习笔记(26):Python网络编程并发编程-GIL与自定义互斥锁的区别

立即学习:https://edu.csdn.net/course/play/24458/296443?utm_source=blogtoedu

1.GIL的基本概念

答:GIL本质上就是一把锁,只是他是一把在python解释器上的锁

 

2.GIL与互斥锁的区别

答:

1)GIL保护的是在python解释器上的参数,python解释器上的参数是所有的线程共享的数据,不管线程是相同还是不同的进程;

 

2)互斥锁则是自己定义的线程锁保护的是自己定义的数据

 

3)下图是只有GIL没有互斥锁的情况,假设线程1首先抢到GIL,但是在运行的时候没能正常运行被强制要求释放GIL,此时线程1处于阻塞状态;而这个时候线程2抢到了GIL并且正常运行了,使得自定义数据count + 1 =1;正常运行线程2释放GIL,这个时候线程1再次获得GIL,重新从解释器开始运行,而这个时候线程1运行的结果也是count=1,可见自定义的数据count没有受到保护

 

4)GIL与互斥锁同在:多线程首先抢的是GIL全局解释器锁,抢到之后再去抢互斥说

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2014年最具人气国外WORDPRESS主题

在国外,WrodPress这个博客系统极为受欢迎,使用WordPress来建站可以降低很多成本,另外还能以十分便宜的价格获得一个漂亮的WP网站模板。 今天向大家分享来自Themeforest 2014年最具人气的高级WrodPress主题,这些主题无论是设计还是…

开源视觉salm算法介绍

当前的开源SLAM方案 开源方案传感器形式地址链接MonoSLAM单目https://github.com/hanmekim/SceneLib2 PTAM单目 http://www.robots.ox.ac.uk/~gk/PTAM/ORB-SLAM 单目为主http://webdiis.unizar.es/~raulmur/orbslam/ORB-SLAM2单目https://github.com/raulmur/ORB_SLAM2LSD-SLAM…

学习笔记(27):Python网络编程并发编程-GIL与多线程

立即学习:https://edu.csdn.net/course/play/24458/296444?utm_sourceblogtoedu GIL与多线程 1.须知: 1)cpu主要是为了提升计算性能,增加CPU提升计算性能; 2)每一个CPU一旦遇到阻塞状态都会处于等待状态&#xff0c…

J0ker的CISSP之路:复习-Access Control(3)

本文同时发表在:[url]http://netsecurity.51cto.com/art/200801/63649.htm[/url] 在《J0ker的CISSP之路》系列的上一篇文章里,J0ker给大家介绍了访问控制CBK里面一些常见的破坏信息资产保密性的威胁类型,那么什么类型的威胁会破坏信息资产的完…

最优化课堂笔记01: 第一章 最优化的基本概念

第一章 最优化的基本概念 1.最优化求解的数学模型建立 2.例题(考试第一大题:数学模型建立) 解析:优化变量、目标函数(一般取最小化)、约束条件 注意: 1)约束条件一般形式为&#…

EIGRP非等价负载均衡

1、等价负载均衡 当到达目的地有多条路径时,而有多条路径的metric值一样,这时就可以做等价负载均衡,让数据包均衡转发,不过要看该路由器的转发方式,如果是快速转发方式,这种方式无用(本地产生的…

ubuntu100%快速安装搜狗输入法

1、进入搜狗官方网站,下载最新版本的for ubuntu输入法deb安装包 2、下载完成以后,进入下载好的文件目录,在空白处点击鼠标右键,打开终端 在终端窗口输入如下的指令开始安装搜狗拼音输入法。 #sudo dpkg -i sogoupinyin_2.2.0.01…

最优化课堂笔记02:第二章 线性规划

第二章 线性规划(重点:单纯形法) 1.线性规划问题及其模型(重点:标准形式) 题型:是否为标准形式?不是的话化为标准形式! 1)问题的提出 提出问题&#xff1…

客户端是选择Java Swing还是C# Winform

登录 | 注册 mentat的专栏 目录视图摘要视图订阅【专家问答】韦玮:Python基础编程实战专题 【知识库】Swift资源大集合 【公告】博客新皮肤上线啦 快来领福利:C币、机械键盘 客户端是选择Java Swing还是C# Winform 标签: swi…

学习笔记(28):Python网络编程并发编程-死锁与递归锁

立即学习:https://edu.csdn.net/course/play/24458/296445?utm_sourceblogtoedu 1.死锁(Lock()的局限性) 知识点:Lock()只能被获得(acquire)一次,要想再次获得必须释放后才能获得 1)死锁情况…

VScode 快速更改编码格式

1、view下的 Cmmand Palette 下的Change file Encoding simplifiled chinese GB2312

iostat

r/s: 每秒读取的请求数。 w/s: 每秒写入的请求数。 Avgqu-sz: 平均I/O队列长度 Await:平均每次设备I/O操作的等待时间(毫秒) Svctm:平均每次设置I/O操作的服务时间(毫秒),Svctm越接近Await则说明等待时间少 %util:表示设备的繁忙程度,80%表示设备设备已经…

学习笔记(29):Python网络编程并发编程-信号量

立即学习:https://edu.csdn.net/course/play/24458/296446?utm_sourceblogtoedu 信号量(了解):也是一把锁semaphore 1. from threading import Thread,Semaphore,currentThread import time#定义信号量(3把锁) sm Semaphore(3)def task()…

Ajax基础2

什么是服务器 网页浏览过程的分析 如何配置自己的服务器程序(AMP) 什么是Ajax 无刷新数据读取 异步,同步 Ajax基础(2) 使用Ajax 基础请求显示txt的文件 字符集编码 缓存,阻止缓存 动态数据,请求js或(json&a…

学习笔记(30):Python网络编程并发编程-Event事件

立即学习:https://edu.csdn.net/course/play/24458/296447?utm_sourceblogtoedu threading.Event事件 1.概念及功能:主要是完成线程之间的通信,将另一个线程的运行状态通知给另一个线程 2.使用场景: 1)客户端运行时等待服务器启…

vs2012 与 win7 不兼容的问题

我用的是win7 64位系统,所以安装位置那里是“C:\Program Files (x86)”,多了个(x86)。 百度搜索到园子里的师兄给的解决办法http://www.cnblogs.com/mumuliang/archive/2013/08/20/3270628.html 装这个补丁: Update for Microsoft Visual Stu…

Scrum方法论(四)

本文转自桂素伟51CTO博客,原文链接: http://blog.51cto.com/axzxs/1358371,如需转载请自行联系原作者

学习笔记(32):Python网络编程并发编程-线程queue

立即学习:https://edu.csdn.net/course/play/24458/296449?utm_sourceblogtoedu 线程queue 一:Queue先进先出 1.queue.Queue(n):创建一个最大容量为n的队列 2.queue.Queue(n).put():添加元素 3.queue.Queue(n).get():取元素 4.put()和get(),默认阻塞状态为True&am…

gulp配置实现修改js、css、html自动刷新

写在前面: 本配置支持es6、less、react 1.首先 给出初始的目录结构 给出执行gulp后的目录结构 给出执行gulp --p后的目录结构 2.package.json里是一个写入。文件描述了npm包的相关配置信息(作者、简介、包依赖等)和所需模块。 {"name&qu…

作为程序员之正则表达式

目录 正则表达式基础语法标准字符集合自定义的字符集合多行、单行模式高级语法选择符和分组反向引用预搜索/零宽断言例子匹配邮箱正则表达式 基础语法 标准字符集合 \D 和[^\d]意思一样,就是与 \d 相反 REG意义\ddigital表示 0 到 9 之间任意的一个数字\wworld表示任…