Я попытался создать простую программу с 10 нитями, но не смогли воспроизвести эту проблему, мой фрагмент кода:
package com.thread;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Executor {
public static void main(String[] args) {
List<Thread> queuedJobs = new ArrayList<Thread>();
queuedJobs.add(new Thread(new MyThreadClass()));
queuedJobs.add(new Thread(new MyThreadClass()));
queuedJobs.add(new Thread(new MyThreadClass()));
queuedJobs.add(new Thread(new MyThreadClass()));
queuedJobs.add(new Thread(new MyThreadClass()));
queuedJobs.add(new Thread(new MyThreadClass()));
queuedJobs.add(new Thread(new MyThreadClass()));
queuedJobs.add(new Thread(new MyThreadClass()));
queuedJobs.add(new Thread(new MyThreadClass()));
queuedJobs.add(new Thread(new MyThreadClass()));
ExecutorService threadExecutor = Executors.newFixedThreadPool(queuedJobs.size());
System.out.println("THE NUMEBR OF JOBS IS "+queuedJobs.size());
for (int i=0; i<queuedJobs.size(); i++){
System.out.println("THREAD "+i+" CREATED");
threadExecutor.execute(queuedJobs.get(i));
}
}
}
class MyThreadClass implements Runnable {
@Override
public void run() {
System.out.println("I am running");
}
}
Выход:
THE NUMEBR OF JOBS IS 10
THREAD 0 CREATED
THREAD 1 CREATED
I am running
THREAD 2 CREATED
I am running
THREAD 3 CREATED
THREAD 4 CREATED
I am running
THREAD 5 CREATED
I am running
THREAD 6 CREATED
I am running
I am running
THREAD 7 CREATED
THREAD 8 CREATED
I am running
I am running
THREAD 9 CREATED
I am running
I am running
Пожалуйста, пост полный ваш фрагмент кода, чтобы исследовать в дальнейшем.
Что такое 'queuedJobs'? – PeterMmm
Arraylist объектов Job. Задание просто вызывает сон (1000) в run() и печатает заявление, в котором говорится, что он сейчас бодрствует. – user1950999
Сколько раз «THREAD:» + i + «CREATED» печатается? – Sanjeev