采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师 为什么selector.select()和下面的注册会出现线程安全问题
内部会占用队列锁,然后去阻塞获取消息,直到有新消息到达;而注册或取消注册会更改队列,所以两个都需要操作到同一个锁,所以存在竞争问题。
老师 那意思就是用同步的写法让注册到获取按照顺序来 防止多个线程无序的去竞争是吗
课程的处理是这样的,其实本质上并不是竞争的问题,selector比较特殊,selector.select()会占用锁,不释放,如果没有新的内容到达就不会被唤醒;从而导致其他的注册操作没法进行;所以只能唤醒。
登录后可查看更多问答,登录/注册
理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选
3.2k 1
2.2k 7
2.0k 5
2.4k 13
1.4k 13
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号