多執行緒簡單入門

2021-09-29 23:12:44 字數 1923 閱讀 2575

目錄

多執行緒簡單入門

執行緒和程序

多執行緒作用

應用場景

多執行緒的幾種狀態

多執行緒的幾種實現方式

繼承thread類。

實現runnable介面

實現callable

使用匿名內部類建立執行緒

程序相當於n個執行緒

例如:每個軟體啟動後就相當於乙個程序,裡面多個模組就相當於多個執行緒。

程序是執行緒的集合,每乙個執行緒是程序中的一條執行路徑。

合理利用多執行緒可以提高程式的執行效率

非同步實現傳送簡訊;

非同步實現記錄日誌;

非同步請求後端介面耗時較長的介面,縮短時間等~

快速提高http協議的響應,提公升使用者體驗。

因為http預設情況下採用同步的形式,整個過程就是基於請求與響應的過程。

如果伺服器端沒有及時的響應客戶端,就會造成客戶端一直處於等待狀態,這樣會導致使用者體驗很不友好。

繼承thread類,重寫run方法;實現runnable介面,重寫run方法;使用匿名內部類;可以帶返回結果的執行緒callable;執行緒池;其他擴充套件方式~

注:使用run方法時是不能throw拋異常的,需要使用try/catch去捕獲異常。

一般用實現runnable介面建立執行緒比較好,因為繼承thread類後不可再繼承,實現runnable介面後還可以繼承。

執行結果:

注:執行緒1、2同時執行,根據cup資源隨機分配執行。

注:執行結果和繼承thread類類似,實現runnable介面開啟執行緒要強轉為thread,因為runnable介面是thread的實現類。實現runnable介面用thread.currentthread().getname(),currentthread()方法獲取執行緒物件,getid()獲取執行緒id是jvm底層分配getname()獲取執行緒名稱,列印日誌時一定要列印執行緒id,方便bug檢視。

public class callabletest implements callable

public static void main(string args) throws executionexception, interruptedexception

}

執行結果:

執行結果:

多執行緒入門

跟前幾篇的風格一樣,我會在開篇的時候舉乙個現實生活中的例子,通過這個例子來對映一些晦澀枯燥的計算機程式設計專業知識,在讓讀者朋友很好地理解理論概念的同時,又避免了閱讀教科書時的枯燥感覺。這次我要舉的例子是公司。不一定是it公司,盡量和程式設計領域遠一點兒吧,那就假設是一家搬家公司吧。假如我們把公司看...

多執行緒(零) 入門 乙個最簡單的多執行緒程式

cpp include include void thread void int main void int i printf this is the main process.n pthread join id,null return 0 include include void thread v...

C C 多執行緒入門

在學習多執行緒程式設計之前,必須先知道什麼是 執行緒函式,執行緒函式就是另乙個執行緒的入口函式.預設情況下乙個我們所寫的 都是只有乙個執行緒的,而這個執行緒的入口函式就是main 函式,這是系統預設的.而我們建立的另乙個執行緒也需要乙個函式來進入,這個函式就叫做執行緒函式.在c c 中,可以呼叫 執...