Java线程总结(五):并发包------线程池Executors

来源:互联网 发布:中孚网络隔离卡 编辑:程序博客网 时间:2024/04/29 17:20
package com.ydj;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class ThreadPoolTest {public static void main(String[] args) {//1. 创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。ExecutorService threadPool = Executors.newFixedThreadPool(3);//2. 创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。//ExecutorService threadPool = Executors.newCachedThreadPool();//3 .创建一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程。//ExecutorService threadPool = Executors.newSingleThreadExecutor();for(int i=1;i<=10;i++){final int task = i;threadPool.execute(new Runnable(){@Overridepublic void run() {for(int j=1;j<=10;j++){try {Thread.sleep(20);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + "线程在执行第"+task+"个任务,"+"循环:"+j);}}});}System.out.println("all of 10 tasks have committed! ");}}

package com.ydj;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;public class ThreadPoolTest2 {public static void main(String[] args) {// 创建一个线程池,它可安排在给定延迟后运行命令或者定期地执行。ScheduledExecutorService  scheduledPool = Executors.newScheduledThreadPool(3);scheduledPool.scheduleAtFixedRate(new Runnable() {@Overridepublic void run() {System.out.println(Thread.currentThread().getName()+":哈哈!");}}, 6, 2, TimeUnit.SECONDS);//6秒后执行一次,之后每2秒执行一次scheduledPool.scheduleAtFixedRate(new Runnable() {@Overridepublic void run() {System.out.println(Thread.currentThread().getName()+":呵呵!");}}, 6, 2, TimeUnit.SECONDS);}}

0 0
原创粉丝点击