Vij*_*sal 1 java multithreading executorservice threadpool
当我们使用Java的Executor服务创建一个线程池并向该线程池提交线程时,这些线程的执行顺序是什么?
我想确保线程先提交,先执行。例如,在下面的代码中,我希望首先执行前 5 个线程,然后执行接下来的 5 个线程,依此类推...
// Create a thread pool of 5 threads.
ScheduledExecutorService exService = Executors.newScheduledThreadPool(5, new ModifiedThreadFactory("ReadThreadPool"));
// Create 100 threads.
MyThread[] threads = createMyThreads(100);
// Submit these 100 threads to thread pool for execution.
for(MyThread thread : threads) {
exService.submit(thread);
}
Run Code Online (Sandbox Code Playgroud)
Java的线程池是否提供了用于此目的的API,或者我们是否需要在我们的末端实现一个FIFO队列来实现此目的。如果 Java 的线程池不提供任何此类功能,我真的很想了解此功能不存在背后的原因,因为它对我来说似乎是一个非常常见的用例。这在技术上是不可能的(我认为这不太可能),还是只是一个失误?