这里selector不是clientchannel公共的吗
来源:7-10 NIO模型多人聊天室演示

匪曰思存
2022-02-01
请问老师
ChatClient client = new ChatClient(“127.0.0.1”, 7777);
client.start();
在start方法中
selector = Selector.open();
这个selector是每次都生成一个,还是跟其他client共用一个,看现在截止到第7章 末尾的样子,像是每个client都生成一个的样子。
因为msg为空就直接用
close(selector);
如果是多个clientchannel共用一个selector那不应该是这个channel没读到直接就关掉该selector了。
写回答
1回答
-
好帮手慕小蓝
2025-02-14
每个
ChatClient
实例通常都有自己的Selector
,以避免线程安全问题。如果你需要多个客户端共享Selector
,确保所有操作都是线程安全的,并且在关闭通道之前从Selector
中注销通道。00
相似问题