線程生命週期和線程池

線程池:

        幫助我們管理線程,我們只需要將需要執行的任務交給線程池。

  線程池會根據任務的個數,執行時長,將不同的任務交給線程池中的線程來執行。

       java裏面線程池的頂級接口是Executor, 是一個執行線程的工具。

       線程池接口是ExecutorService

   

package com.vince;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

/**
 * JDK1.5線程池
 */
public class ThreadDemo5 {
    public static void main(String[] args) {
        //創建線程池
        //1)創建一個單線程的線程池
     // ExecutorService es = Executors.newSingleThreadExecutor();
        //2)創建一個固定大小的線程池
     // ExecutorService es = Executors.newFixedThreadPool(2);
        //3)創建一個可緩存的線程池
      //  ExecutorService es = Executors.newCachedThreadPool();
        //4)創建一個大小無限的線程池,此線程池支持定時以及週期性執行任務的需求
        ScheduledExecutorService es = Executors.newScheduledThreadPool(3);
//        es.execute(new MyRunnable6());
//        es.execute(new MyRunnable6());

        //延遲3秒執行
        es.schedule(new MyRunnable6(),3000, TimeUnit.MILLISECONDS);
        es.shutdown();
    }
}
class MyRunnable6 implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i < 10 ; i++) {
            System.out.println(Thread.currentThread().getName()+"---"+i);
            try {
                Thread.sleep(300);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章