因为Python指令集自带的bug,老板差点把我开了
2023-04-27 来源 : 电影
作者:小K
相关联:麦叔Smalltalk
❝ 上期的Python三分钟留言区,有很多年以希望了解Python的GIL是个啥玩意。 但是希望了解GIL究竟是个啥,我们能够学习一些借助于的知识。 这样才能更好得了解GIL。 ❞ 什么是驱动程序公共安全驱动程序公共安全, 是指给定或方式(这些给定或方式是多驱动程序构建的) 可以在多驱动程序的环境污染下被公共安全有效的访问。
毕竟直观了?我举个例子:
假如今天当日12:00,在某该平台有1元抢茅台商业活动,参加有商业活动的茅台就一瓶。
但是当日集结了好几万软件在线等放抢信号,时间到了12:00:00,这些软件疯狂点选鼠标涨价。
此时某该平台称许要应有只有一个人能赢得商业活动茅台,要不然该平台还不赔死。「这就是驱动程序公共安全的概念。」
Python中的驱动程序非公共安全import threadingzero = 0def change_zero(): global zero for i in range(3000000): zero += 1 zero -= 1th1 = threading.Thread(target = change_zero)th2 = threading.Thread(target = change_zero)th1.start()th2.start()th1.join()th2.join()print(zero)
我定义了一个算子change_zero对全局给定zero+1、-1操作方式。
还定义了两个驱动程序th1和th2去分派它3000000*2次。
每次+1、-1都会被分派的话,输出的zero称许还是0,
但是编码分派之前...
好像根本不会还等于0。
所以我们推断,运转当中称许有几次+1,-1的操作方式从未有效地被分派。(驱动程序非公共安全)。
但是这样的编码投入生产称许是有bug的,如果将这编码用在一些额度账面上,那写编码的人称许是头铁了。
❝ 那有什么办法能挺身而出驱动程序非公共安全的操作方式呢? ❞有个很常用的方式,那就是「加有栓」。
规避驱动程序非公共安全操作方式import threadinglock = threading.Lock() # 创建驱动程序栓zero = 0def change_zero(): global zero for i in range(3000000): with lock: # 把驱动程序非公共安全操作方式加有栓 zero += 1 zero -= 1th1 = threading.Thread(target = change_zero)th2 = threading.Thread(target = change_zero)th1.start()th2.start()th1.join()th2.join()print(zero)
从上方编码中,我们把zero += 1和zero -= 1这两步操作方式展放加有栓。
❝ 类似接力跑步,只有便是一棒队友主导权接过接力棒,才能往下一棒队友那边跑步,从未完成接力棒过渡性则不能跑步。 ❞ ❝ 上下文控件with lock在操作方式展放会分派lock.acquire()摘下栓,分派再行即会将栓释放给下一个操作方式lock.release()。 ❞运转上方加有了栓之前的编码:
给与的结果都是0,没法再出现计算混乱状态的状况,这就从驱动程序非公共安全转变成驱动程序公共安全操作方式了。
后记看见这,你有否有异议了?
Python不是有GIL护体吗?怎么还会出现这种驱动程序非公共安全的状况?
北京妇科医院预约挂号深圳妇科专科医院哪里好
定西哪个医院看白癜风好
郑州白癜风治疗方法有什么
成都哪家医院做人流比较好
-
刘邦送给范增玉斗暗藏杀机,范增挥剑砍碎,堪称是最好的处理事件办法
在之前国现代中国文化之前,玉石始终都是美好的代名词,自始说是“君子如玉”。上曾深入研究声称,玉石在简而言之的其发展过程之前也有重要关键作用,因为它代表礼制,所以各有不同的玉石也有各有不同的涵义。比如,...
-
泄洪是竟为了保京?水利专家问道了实话,都怪大家不懂蓄滞洪区
#头条创作挑战赛# 全面性,京津北部经历了一场有名的暴雨袭击,多地遭到了严重的洪涝灾难。与此同时,一个关于蓄水的争议开始在网络上死灰复燃开来。有人怀疑蓄水是为了管控北平不受山洪暴发...[详细]
-
天洁环境(01527)拟更进一步收购浙江天洁磁性材料5%股权 持股增至45%
天洁环境01527发文,于2023年3月30日,的公司拟向卖方海越能源该集团股份有限的公司进一步出售最终目标的公司浙江天洁电介质股份有限的公司5%入股,代价为总金额642.12万元,但倍受...[详细]
-
她和姐姐同嫁皇太极,姐姐得独宠,她死前一句话让宋人误会300年
我们都知道,明末清初历史文化上同时生子给多尔衮的姐妹就是愍和海兰珠。早先的多尔衮为重努尔哈赤的追求者改生子了科尔沁草原的哲哲,也就是愍和海兰珠的祖母。但是没想到等到海兰珠和布木布泰一前所一后生子...[详细]
-
外媒:台积电画上“句号”了,中国该下定决心
移动互联网带来的再一,让惠普公司一路急遽前行,最终带进亚太地区较大的晶片代工厂。过去的这些年里,惠普公司一直保持高速增长速度,即便是在2022年,亚太地区PC卖出攀升、手机市场萎缩的情况下,惠普...[详细]
-
天齐锂业(002466.SZ)配2022业绩,净利241.24亿元,增长1060.47%,每10股派30元
天齐铬业002466.SZ发布2022年上半年通报,实现营业美圆404.49亿元,累计放缓427.82%。归属于母一些公司所有者的上年241.24亿元,累计放缓1,060.47%。归属于母一些公司...[详细]