Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在阻塞服务器socketchannel上使用选择器_Java_Nio - Fatal编程技术网

Java 在阻塞服务器socketchannel上使用选择器

Java 在阻塞服务器socketchannel上使用选择器,java,nio,Java,Nio,在阻止ServeSocketChannel时使用选择器的用例是什么? 通常,选择器如何在阻塞通道上工作 在阻止ServerSocketChannel时使用选择器有什么用处 没有。它不受支持 通常,选择器如何在阻塞通道上工作 没有。当你尝试它时,你会得到一个非法的BlockingModeException 在阻止ServerSocketChannel时使用选择器有什么用处 没有。它不受支持 通常,选择器如何在阻塞通道上工作 没有。当您尝试时,您将得到一个非法阻塞模式异常,它来自: 在向选择器注册之

在阻止ServeSocketChannel时使用选择器的用例是什么? 通常,选择器如何在阻塞通道上工作

在阻止
ServerSocketChannel
时使用选择器有什么用处

没有。它不受支持

通常,选择器如何在阻塞通道上工作

没有。当你尝试它时,你会得到一个非法的BlockingModeException

在阻止
ServerSocketChannel
时使用选择器有什么用处

没有。它不受支持

通常,选择器如何在阻塞通道上工作

没有。当您尝试时,您将得到一个非法阻塞模式异常,它来自:

在向选择器注册之前,通道必须置于非阻塞模式,并且在取消注册之前不得返回到阻塞模式

有关
寄存器()
,请参阅javadoc:

公共最终选择密钥寄存器(选择器选择,整数运算)

抛出

    IllegalBlockingModeException - If this channel is in blocking mode
这就是
register()
的外观:

public final SelectionKey register(Selector sel, int ops,
                                   Object att)
    throws ClosedChannelException
{
    if (!isOpen())
        throw new ClosedChannelException();
    if ((ops & ~validOps()) != 0)
        throw new IllegalArgumentException();
    synchronized (regLock) {
        if (blocking)
            throw new IllegalBlockingModeException();
...
这是来自:

在向选择器注册之前,通道必须置于非阻塞模式,并且在取消注册之前不得返回到阻塞模式

有关
寄存器()
,请参阅javadoc:

公共最终选择密钥寄存器(选择器选择,整数运算)

抛出

    IllegalBlockingModeException - If this channel is in blocking mode
这就是
register()
的外观:

public final SelectionKey register(Selector sel, int ops,
                                   Object att)
    throws ClosedChannelException
{
    if (!isOpen())
        throw new ClosedChannelException();
    if ((ops & ~validOps()) != 0)
        throw new IllegalArgumentException();
    synchronized (regLock) {
        if (blocking)
            throw new IllegalBlockingModeException();
...

一般来说,它不是。选择器用于非阻塞IO。通常情况下,它不会。选择器用于非阻塞IO。