Java 线程池中每个线程的队列

Java 线程池中每个线程的队列,java,multithreading,task-queue,executor,Java,Multithreading,Task Queue,Executor,据我所知,线程池(java.util.concurrent.Executor类)为池中的所有线程提供了一个任务队列。所以我真的不知道哪个线程将执行我的任务。但我需要为每个线程分配任务队列。我该怎么做?如果您只希望某些线程执行某些任务,那么标准的线程池将不适合您。 但是您可以使用多个线程池,每个线程池中只有一个线程来解决问题。您应该编写程序,这样您就不需要知道哪个线程执行任务。它们只是匿名工作线程 然而,如果你真的想知道,你可以为你想要的每个线程创建一个单线程ExecutorService,然后你

据我所知,线程池(java.util.concurrent.Executor类)为池中的所有线程提供了一个任务队列。所以我真的不知道哪个线程将执行我的任务。但我需要为每个线程分配任务队列。我该怎么做?

如果您只希望某些线程执行某些任务,那么标准的线程池将不适合您。
但是您可以使用多个线程池,每个线程池中只有一个线程来解决问题。

您应该编写程序,这样您就不需要知道哪个线程执行任务。它们只是匿名工作线程


然而,如果你真的想知道,你可以为你想要的每个线程创建一个单线程ExecutorService,然后你就会知道哪个线程将执行一个任务。

为什么你关心哪一个线程执行一个特定的任务,只要任务最终完成?你是对的,但在我的程序中,所有的输入都以特殊的顺序在工作者之间分开,这就是为什么当我得到新的输入时,我决定哪个工作者将执行它,然后我将这个输入放入他的线程中。我明白了,这真的不是个好主意。我会尽量避免这个陷阱。谢谢你的回答。@notnavol我会小心以这种方式分割输入。如果你把它切得太细,你最终会得到一个开销是你所做工作的10倍(甚至更多)的解决方案,这会使多线程解决方案比单线程解决方案慢得多。