我正在尝试在它自己的线程中运行NIO服务器。
在我的跑步功能中,我定义了:
while(running)
{
System.out.println("Server running!");
try
{
this.selector.select();
}
catch (IOException e)
{
e.printStackTrace();
}
}
运行循环只运行一次然后卡住了。 如果没有整个try块,它就可以工作。
它以某种方式阻塞了selector.select()吗?
答案 0 :(得分:4)
文档说,
此方法执行阻止选择操作。只有在选择了至少一个通道,调用此选择器的唤醒方法,或者当前线程被中断(以先到者为准)时,它才会返回。
因此它应该阻止直到选择一个频道。