Java 执行器每个线程的任务分配

Java 执行器每个线程的任务分配,java,multithreading,executorservice,Java,Multithreading,Executorservice,我对java执行器相当陌生,所以这可能是一个简单的问题 ExecutorService executorService = Executors.newFixedThreadPool(NumberOfThreads - 1); do_work(); for(int i = 1; i < NumberOfThreads; i++) { executorService.execute(new Runnable()

我对java执行器相当陌生,所以这可能是一个简单的问题

ExecutorService executorService = Executors.newFixedThreadPool(NumberOfThreads - 1);

        do_work();  
        for(int i = 1; i < NumberOfThreads; i++)
        {
            executorService.execute(new Runnable() 
            {                                   
                public void run()
                {
                    do_work();  
                }
            });             
        } 
ExecutorService ExecutorService=Executors.newFixedThreadPool(NumberOfThreads-1);
你工作吗;
for(inti=1;i
我的问题是:


如果我创建了一个包含“N”个线程的固定线程池,如果我想执行“N”个任务,如上面的代码。我是否保证每个线程只执行一个任务(Do_work())

不是。它是一个池,线程分配给任务并不能保证这一点

e、 g.想象你的
do_work()
方法立即完成。当您提交第二个Runnable时,池中的所有线程都将可用,其中任何一个线程都将成为您工作的候选线程