JAVA思維導圖系列:多線程初級

感覺自己JAVA基礎太差了,重新看一遍,已思維導圖的方式記錄下來


多線程初級





進程

獨立性

擁有獨立資源

獨立的地址

無授權其他進程無法訪問

動態性

與程序的區別是:進程是動態的指令集合,而程序是靜態的指令集合

加入時間概念

有自己的生命週期和不同的狀態

併發性

多個進程可以在單核處理器併發執行

多個進程互不影響

和並行的區別:並行是同一時刻多個進程在多個處理器上同時執行

而併發是指在同一時刻只能執行一條指令,但互相切換迅速,宏觀上看是執行多個指令

線程

線程相對於進程如同進程相對於操作系統

多個線程共享同一進程的資源

輕量級進程

性能高,創建容易

應用:一個瀏覽器同時下載多個圖片、一個服務器同時處理多個請求

JAVA多線程

創建

繼承Thread

實現Runnable接口(推薦)

生命週期

新建

new 一個Thread

就緒

執行start方法

運行

開始執行run方法

阻塞

進入阻塞

調用sleep方法主動放棄處理器資源

想獲得一個同步檢測器,但改同步檢測器被其他資源所佔有

調用一個阻塞式的IO方法,在該方法返回前,線程阻塞

等待某個notify通知

調用suspend掛起

解除阻塞

調用sleep超過指定時間

調用阻塞式IO方法已返回

成功獲得了試圖要得到的同步檢測器

等待某個通知時,其他線程發出了通知

處於掛起的線程調用了resume方法

死亡

run方法結束

程序拋出一個未捕獲的異常

調用stop方法


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