V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  deplivesb  ›  全部回复第 5 页 / 共 72 页
回复总数  1433
1  2  3  4  5  6  7  8  9  10 ... 72  
@deplivesb #25 @weyou @lovelylain @ShadowPower 感谢各位的指正,我想真正原因已经找到了。感谢各位
统一回复:之前确实是自己的错误,指令码确实没有减少,所以根本原因不是这个。
但是原因确实是在这里
下面解释原因:首先在 Python 字节码执行的时候 ,GIL 并不是随时能在任意位置中断切换线程。只有在主动检测中断的地方才可能发生线程切换。这个是大前提
3.10 之前的版本中,INPLACE_ADD 这个 opcode 之后 GIL 会去主动监测中断,所以导致现成不安全。
3.10 的代码中有一个提交 https://github.com/python/cpython/commit/4958f5d69dd2bf86866c43491caf72f774ddec97
根据 T. Wouters 的 Twitter 描述 https://twitter.com/Yhg1s/status/1460935209059328000
这次提交修改了 INPLACE_ADD 之后主动监测中断的操作。使得 INPLACE_ADD 之后无论如何都不会发生线程切换,因此索然是两个 opcode ,但是确实是线程安全。
@lovelylain #18 我的,没有仔细研究,我去研究一下。
@weyou 大哥,原子操作啥意思懂不? gil 是会对每个线程分片执行,但是最小粒度就是一个原子操作,为啥 3.9 之前结果不确定,因为+= 和-= 的操作是两个原子操作,gil 可能在中间中断,导致结果不同步。3.10 之后+= 和-= 是原子操作,gil 单步就执行完 += 和-= 操作了。
楼上一堆说“在任何版本的 Python 下结果都是不可预测的”我只能说大人时代变了。3.10 之后 += 和 -= 的操作线程安全了。该更新一下 Python 版本享受一下新的特性了。
https://i.imgur.com/j6xSMYq.png
https://i.imgur.com/7zXVMBa.png

3.9 里面+= 和-= 不是原子操作,所以线程不安全
3.11 里面这俩是原子操作,所属已线程安全
在中国你记住一个事情:好东西都是偷偷摸摸就分完了,老百姓知道的都是割韭菜的。自古以来都是这个道理。
225 天前
回复了 zhengzhou 创建的主题 摄影 5-8K 入坑相机加镜头 求推
现在这个时间点,这个预算,着实不如买个手机
225 天前
回复了 deplivesb 创建的主题 问与答 20230616 17:45 GitHub 静态资源挂了?
225 天前
回复了 mocxe2vwww 创建的主题 macOS 感觉 32g 都不够用了...
已压缩那么高,说明已经不够了
https://i.imgur.com/ZLlWcME.jpeg 活动监视器-活动监视器-20230812-000076
225 天前
回复了 wgfire 创建的主题 酷工作 全额五险后期收益?
肯定要到手啊,你真以为等你老了养老金能不给你养老?那会儿能承认你交过养老金都不错了。你的养老金早就给领导们用来雇保姆了。

我姥爷生前离休干部,去世之前每个月一万多工资。还各种补贴。光补贴加起来都比当地在职人员的平均工资高。
去世还一次性补贴 40 个月工资。到手 50 多 w
我爷爷生前是工人身份的退休。到去世前每个月才发 3000 多块钱。补贴更是没有。去世就给了不到半年的补贴,不到 2w 块钱。
买房得用小号,在物业那边也要留小号
225 天前
回复了 ldlood 创建的主题 随想 关于青年失业率,我说下我能看到的身边人
@w88975 高高在上的感觉真不错。希望你一厚的孩子奋斗十几年读完大学能回家种个地表示一下诚意
@Rico #16 单张
说白了还是有钱,像我,根本拿不出 2w 块钱。
@AppJun #14 我这个是用 800mm 加了 2x 的增倍镜,又开了 apsc 等效到的 2400
@Rookie01 2400mm
1  2  3  4  5  6  7  8  9  10 ... 72  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1037 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 22:37 · PVG 06:37 · LAX 15:37 · JFK 18:37
Developed with CodeLauncher
♥ Do have faith in what you're doing.