Mar*_*ius 5 java multithreading threadpool
考虑一下Netty教程中的以下示例(尽管这不是我见过的唯一示例):
Executor bossPool = Executors.newCachedThreadPool();
Executor workerPool = Executors.newCachedThreadPool();
ChannelFactory channelFactory = new NioClientSocketChannelFactory(bossPool, workerPool);
Run Code Online (Sandbox Code Playgroud)
在这里创建两个单独的缓存线程池。但为什么?如果多个线程池的大小固定,我可以理解它们的用途,但是高速缓存的线程池不是。那么,如果只拥有一个不断扩展的缓存池,为什么还要拥有多个缓存的线程池呢?实际上,只拥有一个不是更好吗?因为如果您有两个不同的线程提交任务,那么这意味着更可能利用空闲的工作线程。
我对此很疑惑,因为我正在为服务器编写网络,并且正在分别处理UDP和TCP连接。我想将处理任务分派到线程池,并且我正在考虑为此使用缓存的线程池。但是,我不知道该使用一两个。
谢谢。
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |