多執行緒與執行緒池的基本概念與方法

2021-09-18 01:27:39 字數 1798 閱讀 2459

一、多執行緒

1、什麼是多執行緒?

執行緒是作業系統排程的最小單元,在乙個程序裡可以建立多個執行緒,這些執行緒擁有各自的計數器、堆疊和區域性變數等屬性,並且能夠訪問共享的記憶體變數。處理器在多執行緒中高速切換,達到「同時執行」的效果。

2、多執行緒的建立方式

繼承thread類

實現runnable介面,重寫run()方法

實現callable介面,重寫call方法

3、執行緒的啟動方式

/**

* 1、繼承thread

*/public void createbythread()

/*** 2、實現runnable

*/public void createbyrunnable()

/*** callable方式

*/public string createbycallable() throws executionexception, interruptedexception

4、執行緒有什麼狀態

5、執行緒如何終止

二、執行緒池

1、什麼是執行緒池?

執行緒池管理多個執行緒的建立以及銷毀,可以預先的建立多個執行緒,將提交上來的任務合理分配給執行緒執行。執行緒池可以降低資源消耗,提高響應速度以及提高執行緒的可管理性。

2、幾種執行緒池的建立

//建立乙個可快取執行緒池,如果執行緒池長度超過處理需要,可靈活**空閒執行緒(儲存60s),若無可**,則新建執行緒。

executorservice executorservice = executors.newcachedthreadpool();

//建立乙個定長線程池,可控制線程最大併發數,超出的執行緒會在佇列中等待。

executorservice executorservice2 = executors.newfixedthreadpool(2);

// 建立乙個定長線程池,支援定時及週期性任務執行。

executorservice executorservice3 = executors.newscheduledthreadpool(1);

//建立乙個單執行緒化的執行緒池,它只會用唯一的工作執行緒來執行任務,保證所有任務按照指定順序(fifo, lifo, 優先順序)執行。

executorservice executorservice4 = executors.newsinglethreadexecutor();

3、執行緒池的使用

呼叫執行器executors建立執行緒池

呼叫submit()或者execute()方法,傳入執行緒物件

當不需要執行執行緒任務時,呼叫shutdown關閉執行緒池

system.out.println("*****====執行緒池的使用*****====");

//submit底層呼叫execute方法執行任務

executorservice.submit(new testthread());

//傳入runnable

executorservice.execute(new testrunnable());

//傳入callable 並接收執行緒返回值

futurefuture1 = executorservice.submit(new testcallable());

system.out.println("執行緒池方式啟動callable結果:"+future1.get());

system.out.println("*****關閉執行緒池*****=");

executorservice.shutdown();

多執行緒基本概念

什麼是程式 為了完成某項特定的任務,使用某種語言,編寫一組指令的集合 什麼是程序 是乙個正在進行的程式 什麼是執行緒 在乙個程序中,執行的一套功能流程,稱為執行緒 在乙個程序中,執行的多套功能流程,稱為多執行緒 多執行緒程式的優點 1 降低資源消耗。通過重複利用已建立的執行緒降低執行緒建立和銷毀造成...

多執行緒 基本概念

多執行緒和高併發是身為開發人員高階中一直是繞不開的話題,為此專門學習了下,做下總結,作為自己的備忘錄。1.什麼是執行緒 執行緒是作業系統中能夠進行運算排程的最小單位,是程序中的實際運作單位。執行緒本身有乙個供程式執行時的堆疊,同類的多個 執行緒共享一塊記憶體空間。乙個執行緒的生存週期 新建狀態 就緒...

多執行緒基本概念

執行緒同步的真實意思和字面意思恰好相反。執行緒同步的真實意思,其實是 排隊 幾個執行緒之間要排隊,乙個乙個對共享資源進行操作,而不是同時進行操作。因此,關於執行緒同步,需要牢牢記住的第一點是 執行緒同步就是執行緒排隊。同步就是排隊。執行緒同步的目的就是避免執行緒 同步 執行。這可真是個無聊的繞口令。...