从一段 Dubbo 源码到 CPU 分支预测的一次探险之旅
每个时代,都不会亏待会学习的人。 大家好,我是 yes。 这次本来是打算写一篇 RocketMQ 相关文章的,但是被插队了,我也是没想到的,对了本号也有留言了哟。 说来也是巧最近在看 Dubbo 源码,然后发现了一处很奇怪的代码,于是就有了这篇文章,让我们来看一下这段代码,它属于 ChannelEventRunnable,这个 runnable 是 Dubbo IO 线程创建,将此任务扔到业务线程池中处理。 看到没,把 state == ChannelState.RECEIVED 拎出来独立一个 if,而其他的 state 还是放在 switch 里面判断。 我当时脑子里就来回扫描,想想这个到底有什么花头,奈何知识浅薄一脸懵逼。 于是就开始了一波探险之旅! 原来是 CPU 分支预测 遇到问题当然是问搜索引擎了,一般而言我会同时搜索各大引擎,咱这也不说谁比谁好,反正有些时候度娘还是不错的,比如这次搜索度娘给的结果比较靠前,google 较靠后。 一般搜索东西我都喜欢先在官网上搜,找不到了再放开搜,所以先这么搜 site:xxx.com key。 你看这就有了,完美啊! 我们先来看看官网的...