執行緒池的幾種常見的建立的方式
阿新 • • 發佈:2018-12-09
一:建立大小不固定的執行緒池
二:建立固定數量執行緒的執行緒池
三:建立單執行緒的執行緒池
四:建立定時執行緒
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(); }