采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
在注册读事件时,会往inputCallbackMap放入callback,而监听读事件时,会从inputCallbackMap里get到callback进行执行,这样不同线程操作同一个inputCallbackMap会有线程安全性问题吗?
inputCallbackMap 本身不是线程安全的,所以会有线程安全问题。
这里的线程安全出现在添加和移除的时候,如果是调度部分去get的时候往往不会(极小概率)触发线程安全问题了。
而在添加和移除部分我们是有一个外部的锁,这个锁可以帮助我们完成线程同步问题。所以实际运行起来是没有你说的线程安全问题的。
在后面的部分我们还有很多次的更新和优化的哈。逐渐暴露问题,然后解决问题。
老师,那这里为什么不用 synchronized(this),然后 map 用 ConcurrentHashMap 呢?最近对并发有点模糊,又重新看了遍
懂了懂了,还有上面的 waitSelection 配合,哈哈 怎么办,就算有了思路,重新写还是没想到啊 - -
这种只能慢慢来喽,我都不能保证一下就写出最后的代码的,都是写一步,然后看一步。如果有错就改正一点点完善来着。 多写就是最好的老师。
登录后可查看更多问答,登录/注册
理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选
2.7k 1
1.8k 7
1.6k 5
1.9k 13
1.0k 13