Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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 来自Netty 5.x处理程序的同步调用(阻止)_Java_Netty - Fatal编程技术网

Java 来自Netty 5.x处理程序的同步调用(阻止)

Java 来自Netty 5.x处理程序的同步调用(阻止),java,netty,Java,Netty,我有一个关于在Netty中调用阻塞函数的问题(例如:jdbc函数)。 据我所知,此调用不应从nio事件循环执行器发出,因为此循环必须保持非阻塞状态才能处理其他请求。 对于当前的Netty版本(5.0 Alpha),我可以考虑以下选项: 一,。使用DefaultEventExecutorGroup分派此阻塞调用 二,。使用java.util.concurrent.ExecutorService。 这些选项有效吗? 第二个选项是否是安全使用上下文的有效选项? 是否建议使用另一个选项来避免nio事件循


我有一个关于在Netty中调用阻塞函数的问题(例如:jdbc函数)。
据我所知,此调用不应从nio事件循环执行器发出,因为此循环必须保持非阻塞状态才能处理其他请求。
对于当前的Netty版本(5.0 Alpha),我可以考虑以下选项:
  • 一,。使用DefaultEventExecutorGroup分派此阻塞调用
  • 二,。使用java.util.concurrent.ExecutorService。

  • 这些选项有效吗?
    第二个选项是否是安全使用上下文的有效选项?
    是否建议使用另一个选项来避免nio事件循环执行器中的同步锁?

    谢谢。

    两个都有效,而第一个确保每个频道的订单正确。因此,在大多数情况下,1)是解决问题的方法。

    Ty。你能解释一下:每个频道的顺序正确吗?我看不出这两种方法之间的区别。1) 将为我的同步任务的每个执行者使用队列。但似乎我不会为一个通道获得相同的执行器(从我的同步组执行器获得的执行器)。我将获得相同的nio执行器来发送响应,但根据我的测试,syncCallExecutorGroup.submit()中使用的执行器将是我的同步组中的下一个执行器。因此,task1->SyncExecutor 1、task2->SyncExecutor 2都将使用相同的NIOEcutor 1发送响应。但是命令不是强制性的resp1,resp2。