public static void main(String[] args) {
// 创建一个可重用固定线程数的线程池
ExecutorService pool = Executors.newFixedThreadPool(2);
// 创建实现了Runnable接口对象,Thread对象当然也实现了Runnable接口
Thread t1 = new MyThread();
Thread t2 = new MyThread();
Thread t3 = new MyThread();
Thread t4 = new MyThread();
Thread t5 = new MyThread();
// 将线程放入池中进行执行
pool.execute(t1);
pool.execute(t2);
pool.execute(t3);
pool.execute(t4);
pool.execute(t5);
// 关闭线程池
pool.shutdown();
}
}
class MyThread extends Thread {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + "正在执行… …");
}
结果
pool-1-thread-1正在执行… …
pool-1-thread-1正在执行… …
pool-1-thread-1正在执行… …
pool-1-thread-1正在执行… …
pool-1-thread-2正在执行… …
我的个人疑问是,创建了5个线程实例,但是线程池固定数为2,为什么结果为前两个线程随机执行5次,而不是5个线程随机执行2次,线程池执行顺序基本知识,望解答一下,谢谢