2025-06-01 03:54 点击次数:99
为什么多线程编程这样难呢?你有莫得想过这个问题赌钱赚钱官方登录。
一边又一边
周末了,好意思好意思的睡个懒觉起来作念早饭,作念饭其实很简便,照着菜谱一步步来就行,没什么难度。
在你作念饭时短暂手机铃声大作,正本是线上出现了故障,其它共事正在排查,需要你协助一下,一边作念饭一边打电话应该也不算太难,你不错的。
梗直你一边排查问题一边作念饭时本来约好未来来维修空调的师父因为互助不开提前一天来了,你不得不一边作念饭一边排查问题一边告诉维修师父哪个空调坏了、问题是啥。。怎么样,是不是启动搪塞不外来了?
这还不算啥,就在这时你约好的同学也到了,一边理财同学一边教导着维修师父一边排查问题一边作念早饭,你是不是如故启动疯了。
当多线程遭逢分享
看到了吧,"多线程"毫不是在编程这个层面很难,多线程自己就很难。
尤其是当多线程遇上分享数据时更是难上加难,对东说念主类来说,同期作念两件互不侵扰的事情照旧有可能的,一边写代码一边听歌便是,但你不错试试让两个任务分享听的时间,同期听两首歌;粗略让两个任务分享大脑的想考时间,一边解bug一边刷算法,你还能松懈加怡悦吗?
要是你试图推演多线程造访分享数据那么你的脑海很可能就像刚才提到的“一边理财同学一边教导这维修师父一边排查问题一边作念早饭”,一团糟。。东说念主类的大脑似乎天生就不是很擅长(天才不在此策动范畴),更毋庸说因惩办分享数据而带来的死锁等问题。
遇事未定量子力学
你的多线程代码可能在99.99%的情况下使命平素,但在小概率下便是会有问题,这皆不算啥,问题是你该怎么debug呢?
你该怎么调试一个可能独一万分之一出错的措施呢?况兼更棒的是,就像测不准旨趣相似,测量这操作自己居然不行幸免的遏止了被测量粒子的清爽情状,因此产生不细目性。
当你试图用调试器attach上去又粗略加一些log时这自己也会改换多线程措施的手脚,粗略问题就此不再产生,又粗略概率变为了十万分之一,从这个角度看多线程和量子力学有异途同归之妙。
这里的根源在于“可能性的组合爆炸”问题。
由于操作系统的鼎新、系统中断再加上措施员添加的锁等原因,咱们的措施(线程)老是走走停停,这就导致在措施的“试验空间”上有太多可能,试图去测试每一种可能实在是不行能的事情,而咱们添加一些log等自己就给本来如故爆炸的组合新增一个维度,导致有的问题绝顶难复现。
尽管咱们的调试用具IDE等越来越高档,但依然惩办不了多线程自己的问题。
性能是个问题
要是你不眷注措施性能的话,大不错加上一个很粗莽的锁,但锁也不应该加的过分放飞自我,你能联想为了让北京的某个同学买一册书电商要把所有华北地区的库存锁住吗?
要是你眷注地能的话那么锁的粒度会是个问题,同期在硬件级别你可能需要了解多核cache一致性以及memory ordering等,这些皆不是那么容易持续,更毋庸提无锁编程赌钱赚钱官方登录,lock-free等等。
Powered by 赚钱的赌博软件(中国)官方下载 @2013-2022 RSS地图 HTML地图