目錄
多執行緒簡單入門
執行緒和程序
多執行緒作用
應用場景
多執行緒的幾種狀態
多執行緒的幾種實現方式
繼承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 中,可以呼叫 執...