通过netty添加线程池与handler中添加的区别
来源:12-5 Netty应用级别性能调优过程

qq_yy_13
2018-06-18
通过netty添加线程池为什么说是handler的每一行代码都在一个单独的线程池里
不是指定了一个线程池然后里面多个线程哪来的多个,每行代码都要单独怎么分?
然后就是handler中新建对象分配内存为什么要需要共享,
新建对象给业务线程池分配内存那么池里面的线程也能拿到共享吧,为什么不能共享
写回答
1回答
-
闪电侠
2018-06-19
你好
对于第一个问题,指的是,如果使用Netty自定义线程池,那么Handler里面的方法的所有的代码都会在这个线程池里面执行,而自定义线程池可以更加细粒度控制,只把耗时的操作放到线程池中执行,其他的操作依然可以在reactor线程中执行,可能视频里面的描述让你产生误解了。
第二个问题,因为在Netty里面,每个线程都维护了自己的一个内存空间,自定线程池可以做到分配内存依然在Netty的reactor线程中执行,共享reactor线程的内存空间,而如果使用Netty自定义线程池,由于整体代码都在这个自定义的线程池里面去执行,所以内存分配相关的操作都在这个线程池的内存空间去进行,无法共享到reactor线程维护的内存空间,不过在这个自定义线程池内部来说,他的内存依然是可以共享的。
122018-06-20
相似问题