黑马程序员--线程池的创建

来源:互联网 发布:网络监控4根网线接法 编辑:程序博客网 时间:2024/05/23 15:43
/** * 创建四种不同功能的线程池。 * 第一种线程池是标准的线程池。里面的线程个数是固定的。 * 第二种线程池是可缓存的线程池。里面的线程个数是不固定的。 *   当任务执行完毕,线程会保留一分钟。如果有后续任务可以进行重用。如果没有会释放线程。 * 第三种线程池是可以在给定延时后定期执行任务的线程池。 * 第四种线程池是单线程的线程池。 */import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;public class ExecutorDemo{//这个是要执行的内容static Runnable task = new Runnable(){public void run(){System.out.println(Thread.currentThread());}};public static void main(String[] args) throws Exception{//创建一个标准的线程池,里面有3个线程。ExecutorService es = Executors.newFixedThreadPool(3);//执行这个任务十次。观察结果。for(int x=0;x<10;x++){es.submit(task);Thread.sleep(20);}//创建一个可以缓存的线程池。es = Executors.newCachedThreadPool();//执行这个任务十次,并且每个任务不是连续的。观察结果。for(int x=0;x<10;x++){es.submit(task);Thread.sleep(20);}//这是一个可以定期执行任务的线程池。观察结果。Executors.newScheduledThreadPool(3).scheduleAtFixedRate(task, 3, 1, TimeUnit.SECONDS);//创建一个单线程。观察结果。Executors.newSingleThreadExecutor().submit(task);}}

0 0
原创粉丝点击