java多线程:7、线程池创建

来源:互联网 发布:数据精灵免费版 编辑:程序博客网 时间:2024/05/29 10:17
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;/** *线程池 */public class ThreadTest2 {    public static void main(String[] args) {        //创建固定大小的线程池//      ExecutorService threadPool=Executors.newFixedThreadPool(3);        //创建缓存线程池//      ExecutorService threadPool=Executors.newCachedThreadPool();        //创建单个线程池【当线程死掉后会自动再重新创建一个】        ExecutorService thredPool=Executors.newSingleThreadExecutor();        //向线程池中添加调度任务        for( int i=1;i<=10;i++){            final int taskid=i;            thredPool.execute(new Runnable(){                @Override                public void run() {                    // TODO Auto-generated method stub                    for(int i=1;i<=10;i++){                        System.out.println("任务:"+taskid+",循环第"+i+"次");                    }                }            });        }        //当线程池内的任务都执行完后关闭线程池//      thredPool.shutdown();        //立即关闭线程池//      thredPool.shutdownNow();        //定时调度线程池        ScheduledExecutorService                sechudlePool=Executors.newScheduledThreadPool(3);        //5S后执行,没隔3S执行一次        sechudlePool.scheduleAtFixedRate(new Runnable(){            @Override            public void run() {                // TODO Auto-generated method stub                System.out.println("调度任务1执行");            }        }, 5, 3, TimeUnit.SECONDS);        //5S后执行调度任务        sechudlePool.schedule(new Runnable(){            @Override            public void run() {                // TODO Auto-generated method stub                System.out.println("调度任务2执行");            }        }, 5, TimeUnit.SECONDS);    }}
0 0
原创粉丝点击