线程池的创建方法

java 创建线程池

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

/*
* java 创建线程池 四种
*
*/

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class ThreadPoolDemo {
public static void main(String[] args) {

// 创建一个单线程的线程池 串行 顺序执行完成
// ExecutorService executors =Executors.newSingleThreadExecutor();


// 创建一个固定大小的线程池 多个线程同时运行
ExecutorService executors = Executors.newFixedThreadPool(2);


/* 创建一个可缓存的线程池,如果线程池的大小超过了处理任务所需要的线程,那么就会回收部分空闲的线程
* 当任务数量增加时,此线程池又可以智能的添加新线程来处理任务,此线程池不会对线程池的大小做限制,
* 线程池的大小完全依赖于操作系统(或者说JVM)能够创建的最大线程的大小
* */
// ExecutorService executors = Executors.newCachedThreadPool();

// 创建一个大小无限制的线程池,此线程池支持定时及周期性执行任务的需求
// ScheduledExecutorService executors = Executors.newScheduledThreadPool(3);

executors.execute(new MyRunnable());
executors.execute(new MyRunnable());
// 方法4
// executors.schedule(new MyRunnable(),1000, TimeUnit.MILLISECONDS);
// executors.schedule(new MyRunnable(),3000, TimeUnit.MILLISECONDS);
executors.shutdown();

}

}
class MyRunnable implements Runnable{

@Override
public void run() {
for (int i = 0; i <10 ; i++) {
System.out.println(Thread.currentThread().getName()+" : Run Count Number--"+i);
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
-------------本文结束感谢您的阅读-------------