从一个线程写入socketchannel并从其他线程中选择

时间:2015-04-01 07:50:25

标签: java sockets nio

我可以从一个线程写入SocketChannel,而SocketChannel可能正在为其他线程中的IO操作选择Selector#select()吗?它是线程安全的吗?或者我是否必须将ByteBuffer委托给其他线程(无限期地Selector#select()),以便在SocketChannel次呼叫后写入Selector#select()

此外,SelectionKey#interestOps(int)设置兴趣操作线程安全吗?或者我是否必须将其委托给其他线程(无限期Selector#select())。

1 个答案:

答案 0 :(得分:1)

是的,你可以,一般情况下。 select()中阻止的帖子在被阻止时未使用ByteBuffer。如果它在其他地方这样做,当然你需要同步,或采取一些其他措施。