走进并发的世界

最后更新于: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
';