學(xué)習(xí)劉意老師java基礎(chǔ)的筆記
2:什么是進程?
通過任務(wù)管理器我們就看到了進程的存在。
而通過觀察,我們發(fā)現(xiàn)只有運行的程序才會出現(xiàn)進程。
進程:就是正在運行的程序。
進程是系統(tǒng)進行資源分配和調(diào)用的獨立單位。每一個進程都有它自己的內(nèi)存空間和系統(tǒng)資源。
3:多進程有什么意義呢?
單進程的計算機只能做一件事情,而我們現(xiàn)在的計算機都可以做多件事情。
舉例:一邊玩游戲(游戲進程),一邊聽音樂(音樂進程)。
也就是說現(xiàn)在的計算機都是支持多進程的,可以在一個時間段內(nèi)執(zhí)行多個任務(wù)。
并且呢,可以提高CPU的使用率。
問題:
一邊玩游戲,一邊聽音樂是同時進行的嗎?
不是。因為單CPU在某一個時間點上只能做一件事情。
而我們在玩游戲,或者聽音樂的時候,是CPU在做著程序間的高效切換讓我們覺得是同時進行的。
4:什么是線程呢?
在同一個進程內(nèi)又可以執(zhí)行多個任務(wù),而這每一個任務(wù)我就可以看出是一個線程。
線程:是程序的執(zhí)行單元,執(zhí)行路徑。是程序使用CPU的最基本單位。
單線程:如果程序只有一條執(zhí)行路徑。
多線程:如果程序有多條執(zhí)行路徑。
5:多線程有什么意義呢?
多線程的存在,不是提高程序的執(zhí)行速度。其實是為了提高應(yīng)用程序的使用率。
程序的執(zhí)行其實都是在搶CPU的資源,CPU的執(zhí)行權(quán)。
多個進程是在搶這個資源,而其中的某一個進程如果執(zhí)行路徑比較多,就會有更高的幾率搶到CPU的執(zhí)行權(quán)。
我們是不敢保證哪一個線程能夠在哪個時刻搶到,所以線程的執(zhí)行有隨機性。
itcast_01

itcast_02



itcast_03



itcast_04













itcast_05


itcast_06


itcast_07


itcast_08



itcast_09



itcast_10


itcast_11





itcast_12
