一:创建大小不固定的线程池
二:创建固定数量线程的线程池
三:创建单线程的线程池
四:创建定时线程
一:创建大小不固定的线程池
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.newCachedThreadPool(2);
for(int i=0;i<10;i++){
Taskdemo tc=new Taskdemo();
es.execute(tc);
}
es.shutdown();
}
}
二:创建固定数量线程的线程池
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();
}
三:创建单线程的线程池
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();
}
四:创建定时线程
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();
}