我有一个执行程序,允许消费者决定池的大小。但是如果消费者选择 1,那么我最终会在一个线程中运行多个 Runnable。所以问题是:让一个runnable在一个循环中进行一堆服务器调用会更好吗?还是每次调用都有一个可运行的更好?我的问题是帮助评估我是否应该在用户将池大小设置为 1 时提出一个特殊情况。
问问题
160 次
1 回答
0
我的问题是帮助评估我是否应该在用户将池大小设置为 1 时提出一个特殊情况。
如果池大小为 1 以使您的代码更加一致,最好不要做一些特殊的事情。就效率而言,拥有多个Runnable
s 可能效率较低,但与服务器调用相比可能是杯水车薪。所以你应该投票支持更好的代码一致性而不是过早的优化。
可以肯定的是,始终建议您使用这些ExecutorService
类来构建线程池。
// create a thread pool with some number of workers chosen by the user
ExecutorService threadPool = Executors.newFixedThreadPool(numThreadsInPool);
for (MyRunnable job : runnablesToDo) {
threadPool.submit(job);
}
// once we have submitted all jobs to the thread pool, it should be shutdown
threadPool.shutdown();
于 2013-11-08T13:07:15.883 回答