1、cacheThreadPool、fixedThreadPool、scheduleThreadPool、singleThreadPool
package com.jd.jr.trade.xjk.test;
import com.alibaba.fastjson.JSONObject;
import java.util.Date;
import java.util.concurrent.*;
/**
* Created by wangxingjie on 2016/12/5.
*/
public class TestExeThread {
public static void main(String[] args) {
System.out.println("开始==");
// System.out.println("testCacheThreadPool==");
// testCacheThreadPool();
System.out.println("testFixedThreadPool");
testFixedThreadPool();
// System.out.println("testScheduleThreadPool");
// testScheduleThreadPool();
// System.out.println("testSingleThread");
// testSingleThread();
System.out.println("结束=="+new Date());
}
public static void testCacheThreadPool(){
ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
for (int i = 0; i < 10; i++) {
final int index = i;
try {
Thread.sleep(index * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
cachedThreadPool.execute(new Runnable() {
public void run() {
System.out.println(index+ "==="+new Date());
}
});
}
}
/**
* 该线程池大小为3,即3个线程并行执行(无序)
*/
public static void testFixedThreadPool(){
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);
for (int i = 0; i < 10; i++) {
final int index = i;
fixedThreadPool.execute(new Runnable() {
public void run() {
try {
System.out.println(index+"=="+new Date());
Thread.sleep(1000);
System.out.println(index+"=="+new Date());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}
}
public static void testScheduleThreadPool(){
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
scheduledThreadPool.schedule(new Runnable() {
public void run() {
System.out.println("delay 3 seconds=="+new Date());
}
}, 3, TimeUnit.SECONDS);
}
public static void testSingleThread(){
ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
for (int i = 0; i < 10; i++) {
final int index = i;
singleThreadExecutor.execute(new Runnable() {
public void run() {
try {
System.out.println(index+"=="+new Date());
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}
}
}