走进并发的世界
最后更新于:2022-04-02 04:28:57
## 走进并发的世界
我不知道你写代码写了多久,如果你从未接触到`并发`,没有听说过相关的概念,不要以为你写的代码没有`并发问题`。那并不是没有`并发`,只是你还没发现,还没有意识到而已,等到出现问题时就晚了。(这里的问题是指:程序执行结果或过程与预期不一致,也就是出现难以预料的BUG)
`并发`是现实世界中真实存在的科学物理规则,是任何事物都绕不过坎儿。
没有考虑`并发`的程序是不完整的程序。
这绝不是危言耸听,你看看下面几个实例,你有没有碰到过,你是怎么解决和理解的。
1. 取款(多客户端取款)
2. 下单(超卖)
3. 分布式服务
> 不论是前端还是后端,如果你曾经调试过一些**诡异的BUG**,你就很有可能遇到过在并发、异步调用时而出现问题的难以调试的代码,这些和预期不一致的BUG往往让人很头痛,也很难复现,如果你曾陷入这种泥沼,你就应该知道我在说什么了。
* * * * *
### 走进异步的世界
或许你从未留意过,代码就是自上而下,按顺序执行,一直以来都是这样的,对此你不以为然,你并不觉得这里面还能有什么花样。
其实你没有`同步`和`异步`的概念,你所知道的代码,其实都是`同步`的,`判断结构/函数的调用`等等,都是以`同步阻塞`的方式调用的,只不过你还没有意识到,你可能会说,这些还用说吗,这是理所当然,不言而喻的事情啊,这需要解释吗,就像太阳走了月亮升起一样,代码本身就是这个样子的啊,可是当你遇到`异步`的代码时,你就会怀疑这个世界了(你所认识的世界)。这世界有`同步`,还会有`异步`,只是你还不知道而已。
* * * * *
### 事物的本质
当你了解事物的本质了,就会慢慢理解这个世界的运作规则了。
这就是生活。
代码是为了解决问题的,很多时候,它和生活有着一样的运作规则。
我想说,没有什么能和生活分开。
* * * * *
### 扩展
[高并发下的HashMap](https://mp.weixin.qq.com/s/6G_SpCR3Bz5JPDKmpd9IxQ)
[漫画:高并发下的HashMap](https://mp.weixin.qq.com/s/dzNq50zBQ4iDrOAhM4a70A?)
* * * * *
last update:2018-4-15 16:06:40
';