一:創建大小不固定的線程池
二:創建固定數量線程的線程池
三:創建單線程的線程池
四:創建定時線程
1.創建大小不固定的線程池
package com.peace.pms.Test;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* @Author: cxx
* @Date: 2018/3/3 17:16
*/
public class ThreadPoolDemo {
public static class Taskdemo implements Runnable{
@Override
public void run() {
for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
}
public static void main(String[] args) {
ExecutorService es=Executors.newFixedThreadPool(2);
for(int i=0;i<10;i++){
Taskdemo tc=new Taskdemo();
es.execute(tc);
}
es.shutdown();
}
}
2.創建固定數量線程的線程池
public static void main(String[] args) {
ExecutorService es=Executors.newFixedThreadPool(2);
for(int i=0;i<10;i++){
Taskdemo tc=new Taskdemo();
es.execute(tc);
}
es.shutdown();
}
3.創建單線程的線程池
public static void main(String[] args) {
ExecutorService es=Executors.newSingleThreadExecutor();
for(int i=0;i<10;i++){
Taskdemo tc=new Taskdemo();
es.execute(tc);
}
es.shutdown();
}
4.創建定時線程
public static void main(String[] args) {
ScheduledExecutorService es=Executors.newScheduledThreadPool(2);
for(int i=0;i<10;i++){
Taskdemo tc=new Taskdemo();
//參數1:目標對象
//參數2:隔多長時間開始執行線程,
//參數3:執行週期
//參數4:時間單位
es.scheduleAtFixedRate(tc, 30, 10, TimeUnit.MILLISECONDS);
}
es.shutdown();
}