可在并发线程中安全使用 java.nio.channels.Selector 和 java.nio.channels.SelectableChannel 类

在 Java 11 之前,java.nio.channels.SelectableChannel 类和 java.nio.channels.Selector 键集不是线程安全的。已更新了规范,现在可通过并发线程来安全使用这些 API。如果在执行选择操作时注册了新通道,那么在执行下一个选择操作之前,该通道不会生效。此更改不会影响在 java.nio.channels.Selector 所选键集上同步的代码,但是可以更改代码以使用新的线程安全 API。

有关 java.nio.channels.Selector 类的其他信息,请参阅 Class java.nio.channels.Selector Java 文档。

有关 java.nio.channels.SelectableChannel 类的其他信息,请参阅 Class java.nio.channels.SelectableChannel Java 文档。

有关 JDK 11 中的更改的更多信息,请参阅 Release Notes in JDK 11