线程池的概念 与Executors 类的应用

创建固定大小的线程池 ExecutorService threadPool = Executors.newFixedThreadPool(3);

创建缓存线程池       ExecutorService threadPool = Executors.newCachedThreadPool(3);

创建单一线程池    ExecutorService threadPool = Executors.newSingleThreadExecutor(3);(线程死掉后重新生成新的线程)

 

线程池定时器   Executors.newScheduledThreadPool(3).schedule(Runnable command,long delay,时间格式); 具体看apijdk1.6

 

 

public class ThreadPoolTest {

 

         /**

          * @param args

          */

         public static void main(String[] args) {

                   //ExecutorService threadPool = Executors.newFixedThreadPool(3);

                   //ExecutorService threadPool = Executors.newCachedThreadPool();

                   ExecutorService threadPool = Executors.newSingleThreadExecutor();

                   for(int i=1;i<=10;i++){

                            final int task = i;

                            threadPool.execute(new Runnable(){

                                     @Override

                                     public void run() {

                                               for(int j=1;j<=10;j++){

                                                        try {

                                                                 Thread.sleep(20);

                                                        } catch (InterruptedException e) {

                                                                 // TODO Auto-generated catch block

                                                                 e.printStackTrace();

                                                        }

                                                        System.out.println(Thread.currentThread().getName() + " is looping of " + j

 

+ " for  task of " + task);

                                               }

                                     }

                            });

                   }

                   System.out.println("all of 10 tasks have committed! ");

                   //threadPool.shutdownNow();

                  

                   Executors.newScheduledThreadPool(3).scheduleAtFixedRate(

                                     new Runnable(){

                                               @Override

                                     public void run() {

                                               System.out.println("bombing!");

                                              

                                     }},

                                     6,

                                     2,

                                     TimeUnit.SECONDS);

posted @ 2014-09-05 08:45  mxyhws  阅读(211)  评论(0)    收藏  举报