IoSelectorProvider 中inputCallbackMap的线程安全性
来源:7-8 NIO服务器Thread优化-2

蓝胖子的编程梦
2019-07-09
在注册读事件时,会往inputCallbackMap放入callback,而监听读事件时,会从inputCallbackMap里get到callback进行执行,这样不同线程操作同一个inputCallbackMap会有线程安全性问题吗?
写回答
1回答
-
Qiujuer
2019-07-09
inputCallbackMap 本身不是线程安全的,所以会有线程安全问题。
这里的线程安全出现在添加和移除的时候,如果是调度部分去get的时候往往不会(极小概率)触发线程安全问题了。
而在添加和移除部分我们是有一个外部的锁,这个锁可以帮助我们完成线程同步问题。所以实际运行起来是没有你说的线程安全问题的。
在后面的部分我们还有很多次的更新和优化的哈。逐渐暴露问题,然后解决问题。
032019-09-26
相似问题