调度线程池ScheduledThreadPool使用示例

package com.expgiga.JUC;


import java.util.Random;
import java.util.concurrent.*;

/**
 * 一、线程池:提供了一个线程队列,队列中保存着所有等待状态的线程。避免了创建与销毁额外的开销,提高了响应速度。
 * 二、线程池的体系结构:
 *    java.util.concurrent.Executor:负责线程的使用与调度的根接口
 *       |-- ExecutorService 子接口:线程池的主要接口
 *          |-- ThreadPoolExecutor 线程池的实现类
 *          |-- ScheduledExecutorService 子接口:负责线程的调度
 *             |--ScheduledThreadPoolExecutor:继承了ThreadPoolExecutor实现了ScheduledExecutorService
 * 

* 三、工具类:Executors * ExecutorService newFixedThreadPool():创新固定大小的线程池、 * ExecutorService newCacheThreadPool():缓存线程池,线程池的数量不固定,可以根据需求自动的而更改数量。 * ExecutorService newSingleThreadExecutor():创建单个线程池,线程池中只有一个线程 *

* ScheduledExecutorService newScheduledThreadPool():创建固定大小的线程,可以延迟或定时执行任务。 */ public class TestScheduledThreadPool { public static void main(String[] args) throws ExecutionException, InterruptedException { ScheduledExecutorService pool = Executors.newScheduledThreadPool(5); for (int i = 0; i < 5; i++) { Future result = pool.schedule(new Callable() { @Override public Integer call() throws Exception { int num = new Random().nextInt(100);//生成随机数 System.out.println(Thread.currentThread().getName() + " : " + num); return num; } }, 3, TimeUnit.SECONDS); System.out.println(result.get()); } pool.shutdown(); } }

你可能感兴趣的:(Java)