JAVA思惟導圖系列:多線程0基礎

感受本身JAVA基礎太差了,又一次看一遍,已思惟導圖的方式記錄下來瀏覽器


多線程0基礎
多線程





進程

獨立性

擁有獨立資源

獨立的地址

無受權其它進程沒法訪問

動態性

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

增長時間概念

有本身的生命週期和不一樣的狀態

併發性

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

多個進程互不影響

和並行的差異:並行是同一時刻多個進程在多個處理器上同一時候運行

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

線程

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

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

輕量級進程

性能高,建立easy

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

JAVA多線程

建立

繼承Thread

實現Runnable接口(推薦)

生命週期

新建

new 一個Thread

就緒

運行start方法

執行

開始運行run方法

堵塞

進入堵塞

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

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

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

等待某個notify通知

調用suspend掛起

解除堵塞

調用sleep超過指定時間

調用堵塞式IO方法已返回

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

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

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

死亡

run方法結束

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

調用stop方法

相關文章
相關標籤/搜索