使用线程池创建线程
使用固定线程池创建线程,由固定数目的线程处理任务
public class Demo12 {
public static void main(String[] args) {
ExecutorService threadPool = Executors.newFixedThreadPool(10);
for (int i = 0; i < 100; i++) {
threadPool.execute(() -> {
System.out.println(Thread.currentThread().getName());
});
}
threadPool.shutdown();
}
}
pool-1-thread-2
pool-1-thread-1
pool-1-thread-4
pool-1-thread-6
pool-1-thread-5
pool-1-thread-3
pool-1-thread-8
pool-1-thread-7
pool-1-thread-3
pool-1-thread-10
pool-1-thread-9
pool-1-thread-5
pool-1-thread-1
pool-1-thread-6
pool-1-thread-2
pool-1-thread-6
pool-1-thread-10
pool-1-thread-3
pool-1-thread-7
pool-1-thread-8
pool-1-thread-1
pool-1-thread-4
pool-1-thread-5
pool-1-thread-9
pool-1-thread-5
pool-1-thread-4
pool-1-thread-1
pool-1-thread-8
pool-1-thread-7
pool-1-thread-3
pool-1-thread-10
pool-1-thread-6
pool-1-thread-2
pool-1-thread-2
pool-1-thread-2
pool-1-thread-2
pool-1-thread-6
pool-1-thread-10
pool-1-thread-3
pool-1-thread-7
pool-1-thread-8
pool-1-thread-1
pool-1-thread-4
pool-1-thread-4
pool-1-thread-4
pool-1-thread-4
pool-1-thread-4
pool-1-thread-4
pool-1-thread-5
pool-1-thread-9
pool-1-thread-5
pool-1-thread-4
pool-1-thread-1
pool-1-thread-8
pool-1-thread-7
pool-1-thread-3
pool-1-thread-10
pool-1-thread-6
pool-1-thread-2
pool-1-thread-6
pool-1-thread-10
pool-1-thread-3
pool-1-thread-7
pool-1-thread-8
pool-1-thread-1
pool-1-thread-4
pool-1-thread-5
pool-1-thread-9
pool-1-thread-5
pool-1-thread-4
pool-1-thread-1
pool-1-thread-8
pool-1-thread-7
pool-1-thread-3
pool-1-thread-10
pool-1-thread-6
pool-1-thread-2
pool-1-thread-6
pool-1-thread-10
pool-1-thread-3
pool-1-thread-3
pool-1-thread-3
pool-1-thread-3
pool-1-thread-7
pool-1-thread-8
pool-1-thread-8
pool-1-thread-8
pool-1-thread-1
pool-1-thread-4
pool-1-thread-5
pool-1-thread-9
pool-1-thread-5
pool-1-thread-4
pool-1-thread-1
pool-1-thread-8
pool-1-thread-7
pool-1-thread-3
pool-1-thread-10
pool-1-thread-6
pool-1-thread-2
使用cachedThreadPool创建线程池,线程执行数目不确定
public class Demo12 {
public static void main(String[] args) {
ExecutorService threadPool = Executors.newCachedThreadPool();
for (int i = 0; i < 100; i++) {
threadPool.execute(() -> {
System.out.println(Thread.currentThread().getName());
});
}
threadPool.shutdown();
}
}
pool-1-thread-1
pool-1-thread-5
pool-1-thread-4
pool-1-thread-3
pool-1-thread-2
pool-1-thread-8
pool-1-thread-7
pool-1-thread-6
pool-1-thread-10
pool-1-thread-9
pool-1-thread-11
pool-1-thread-12
pool-1-thread-9
pool-1-thread-6
pool-1-thread-5
pool-1-thread-6
pool-1-thread-12
pool-1-thread-11
pool-1-thread-4
pool-1-thread-3
pool-1-thread-10
pool-1-thread-3
pool-1-thread-2
pool-1-thread-8
pool-1-thread-7
pool-1-thread-2
pool-1-thread-1
pool-1-thread-15
pool-1-thread-7
pool-1-thread-2
pool-1-thread-15
pool-1-thread-3
pool-1-thread-15
pool-1-thread-10
pool-1-thread-8
pool-1-thread-13
pool-1-thread-14
pool-1-thread-12
pool-1-thread-6
pool-1-thread-11
pool-1-thread-12
pool-1-thread-12
pool-1-thread-4
pool-1-thread-5
pool-1-thread-23
pool-1-thread-9
pool-1-thread-23
pool-1-thread-4
pool-1-thread-5
pool-1-thread-12
pool-1-thread-5
pool-1-thread-22
pool-1-thread-12
pool-1-thread-11
pool-1-thread-21
pool-1-thread-6
pool-1-thread-20
pool-1-thread-21
pool-1-thread-8
pool-1-thread-13
pool-1-thread-14
pool-1-thread-19
pool-1-thread-10
pool-1-thread-18
pool-1-thread-3
pool-1-thread-15
pool-1-thread-17
pool-1-thread-2
pool-1-thread-16
pool-1-thread-7
pool-1-thread-34
pool-1-thread-1
pool-1-thread-29
pool-1-thread-15
pool-1-thread-31
pool-1-thread-19
pool-1-thread-30
pool-1-thread-10
pool-1-thread-8
pool-1-thread-21
pool-1-thread-14
pool-1-thread-13
pool-1-thread-27
pool-1-thread-36
pool-1-thread-20
pool-1-thread-6
pool-1-thread-12
pool-1-thread-11
pool-1-thread-22
pool-1-thread-26
pool-1-thread-5
pool-1-thread-4
pool-1-thread-25
pool-1-thread-9
pool-1-thread-23
pool-1-thread-24
pool-1-thread-35
pool-1-thread-28
pool-1-thread-33
pool-1-thread-32