線程池:
幫助我們管理線程,我們只需要將需要執行的任務交給線程池。
線程池會根據任務的個數,執行時長,將不同的任務交給線程池中的線程來執行。
java裏面線程池的頂級接口是Executor, 是一個執行線程的工具。
線程池接口是ExecutorService
package com.vince;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
* JDK1.5線程池
*/
public class ThreadDemo5 {
public static void main(String[] args) {
//創建線程池
//1)創建一個單線程的線程池
// ExecutorService es = Executors.newSingleThreadExecutor();
//2)創建一個固定大小的線程池
// ExecutorService es = Executors.newFixedThreadPool(2);
//3)創建一個可緩存的線程池
// ExecutorService es = Executors.newCachedThreadPool();
//4)創建一個大小無限的線程池,此線程池支持定時以及週期性執行任務的需求
ScheduledExecutorService es = Executors.newScheduledThreadPool(3);
// es.execute(new MyRunnable6());
// es.execute(new MyRunnable6());
//延遲3秒執行
es.schedule(new MyRunnable6(),3000, TimeUnit.MILLISECONDS);
es.shutdown();
}
}
class MyRunnable6 implements Runnable{
@Override
public void run() {
for (int i = 0; i < 10 ; i++) {
System.out.println(Thread.currentThread().getName()+"---"+i);
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}