首页 新闻 会员 周边

NIO中多线程访问Selector同步问题

0
悬赏园豆:50 [已关闭问题] 关闭于 2014-06-30 13:44

《Java NIO》书中是原文如下:
如果在多个线程并发地访问一个选择器的键的集合的时候存在任何问题,您可以采取一些步骤来合理地同步访问。在执行选择操作时,选择器在Selector对象上进行同步,然后是已注册的键的集合,最后是已选择的键的集合,按照这样的顺序。已取消的键的集合也在选择过程的的第1步和第3步之间保持同步(当与已取消的键的集合相关的通道被注销时)。
在多线程的场景中,如果您需要对任何一个键的集合进行更改,不管是直接更改还是其他操作带来的副作用,您都需要首先以相同的顺序,在同一对象上进行同步。锁的过程是非常重要的。如果竞争的线程没有以相同的顺序请求锁,就将会有死锁的潜在隐患。如果您可以确保否其他线程不会同时访问选择器,那么就不必要进行同步了。

问题:具体如何同步选择器?
熟知NIO者给出详细代码!

xxstruggle的主页 xxstruggle | 菜鸟二级 | 园豆:202
提问于:2014-06-25 10:37
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册