我目前正在使用Netty和Command Pattern开发服务器。在调用者的实现过程中,我有了使用多个线程实现它的想法,以确保高命令执行性能。
但是,我开始想知道Netty是否有必要,因为Netty自己创建了多个线程。所以现在我的问题是:如果我将一个线程安全的调用者对象传递给Netty处理程序并从那里调用invoke()方法,调用者是否已经是多线程的?如果是这种情况,这是一种好的做法还是我应该创建自己的调用程序线程?
感谢您的帮助!
答案 0 :(得分:0)
经过一些研究后,我找到了问题的答案。我会在这里发布,如果有人遇到类似的问题:
如果我将一个线程安全的调用者对象传递给Netty处理程序并从那里调用invoke()方法,调用者是否已经是多线程的?
是的,除非另有说明,否则Netty处理程序将构建2 * count of cores
个线程。因此,通道处理程序通常在不同的线程中执行,因此,由于netty的性质,command.execute()方法的简单调用已经是多线程的。
这是好习惯吗?
是的,否则会创建太多线程,并且不必要地委派netty工作线程的任务。