Java中多執行緒的使用(超級超級詳細)執行緒池 7
什么是執行緒池?
執行緒池是一個容納多個執行緒的容器,執行緒池中的執行緒可以重復使用,無需反復創建執行緒而消耗過多的資源
*使用多執行緒的好處:
1.降低消耗,減少了創建和銷毀執行緒的次數,每個執行緒都可以重復利用,可執行多個任務
2.提高回應速度,任務可以不需要等到執行緒創建就可以立即執行
3.提高執行緒的可管理性,根據系統的承受能力,調整執行緒池中作業執行緒的數目,防止消耗過多的記憶體,導致服務器死機
執行緒池的使用
執行緒池的頂級介面是java.util.concurrent.Excetor,但是嚴格意義上來講,Excutor并不是一個執行緒池,而只是一個執行執行緒的工具,真正的執行緒池介面是java.util.concurrent.ExceutorService,要配置一個執行緒池是比較復雜的,而且配置的執行緒池很可能不是最優的,因此java.util.cocurrent.Exceutors執行緒工程里提供了一些靜態工廠,生成一些常用的執行緒池,官方建議使用Exceutors工程來創建執行緒池物件
創建執行緒池的方法
public static ExecutorService newFixedThreadPool(int nThreads) :回傳執行緒池物件,(創建的是有界線 程池,也就是池中的執行緒個數可以指定最大數量)
獲取到了一個執行緒池ExecutorService 物件,那么怎么使用呢,在這里定義了一個使用執行緒池物件的方法如下: public Future<?> submit(Runnable task) :獲取執行緒池中的某一個執行緒物件,并執行
Future介面:用來記錄執行緒任務執行完畢后產生的結果,執行緒池創建與使用,
使用執行緒池中執行緒物件的步驟
1.創建執行緒池物件
2.創建Runable介面子類物件
3.提交Runable介面的子類物件
4.關閉執行緒池
下面使用一段代碼來操作一下下
package ThreadPool;
public class MyThread implements Runnable {
@Override
public void run() {
System.out.println("我要吃飯");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("我吃飽了");
}
}
package ThreadPool;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Main {
public static void main(String[] args) {
//創建執行緒池物件
ExecutorService executorService = Executors.newFixedThreadPool(2);
//創建Runable實體物件
MyThread myThread = new MyThread();
executorService.submit(myThread);
executorService.submit(myThread);
executorService.submit(myThread);
}
}
運行結果

以上就是執行緒池的一些基礎知識,如有錯誤還請批評指正,喜歡我的可以點贊收藏,我會不定期跟新文章,可以關注我呀

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/141643.html
標籤:Java
上一篇:Java Lambda運算式
