IoSelectorProvider 中inputCallbackMap的线程安全性

来源:7-8 NIO服务器Thread优化-2

蓝胖子的编程梦

2019-07-09

在注册读事件时,会往inputCallbackMap放入callback,而监听读事件时,会从inputCallbackMap里get到callback进行执行,这样不同线程操作同一个inputCallbackMap会有线程安全性问题吗?

写回答

1回答

Qiujuer

2019-07-09

inputCallbackMap 本身不是线程安全的,所以会有线程安全问题。

这里的线程安全出现在添加和移除的时候,如果是调度部分去get的时候往往不会(极小概率)触发线程安全问题了。

而在添加和移除部分我们是有一个外部的锁,这个锁可以帮助我们完成线程同步问题。所以实际运行起来是没有你说的线程安全问题的。



在后面的部分我们还有很多次的更新和优化的哈。逐渐暴露问题,然后解决问题。


0
3
Qiujuer
回复
LillteZheng
这种只能慢慢来喽,我都不能保证一下就写出最后的代码的,都是写一步,然后看一步。如果有错就改正一点点完善来着。 多写就是最好的老师。
2019-09-26
共3条回复

Socket网络编程进阶与实战 系统掌握Socket核心技术

理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选

2319 学习 · 476 问题

查看课程