01-多線程的引入 如果程式只有一條執行路徑,那麼該程式就是單線程程式 如果程式有多條執行程式,那麼該程式就是多線程程式 02-進程概述及多進程的意義 要想瞭解多線程,必須先瞭解線程,而要想瞭解線程,必須先瞭解進程,因為線程是依賴於進程而存在。 進程:就是正在運行的程式。 進程是系統進行資源分配和調 ...
01-多線程的引入
- 如果程式只有一條執行路徑,那麼該程式就是單線程程式
- 如果程式有多條執行程式,那麼該程式就是多線程程式
02-進程概述及多進程的意義
要想瞭解多線程,必須先瞭解線程,而要想瞭解線程,必須先瞭解進程,因為線程是依賴於進程而存在。
- 進程:就是正在運行的程式。
- 進程是系統進行資源分配和調用的獨立單位。每一個進程都有它自己的記憶體空間和系統資源。
單進程的電腦只能做一件事情,現在的電腦都是支持多進程的,可以在一個時間段內執行多個任務。並且呢,可以提高CPU的使用率。


03-線程概述及多線程的意義
什麼是一個進程內又可以執行多個任務,而這每一個任務我就可以看出是一個線程。
- 線程:是程式的執行單元,執行路徑。是程式使用CPU的最基本單位。
- 單線程:如果程式只有一條執行路徑。
- 多線程:如果程式有多條執行路徑。
多線程有什麼意義呢?
- 多線程的存在,不是提高程式的執行速度。其實是為了提高應用程式的使用率。
程式的執行其實都是在搶CPU的資源,CPU的執行權。
多個進程是在搶這個資源,而其中的某一個進程如果執行路徑比較多,就會有更高的幾率搶到CPU的執行
- 我們是不敢保證哪一個線程能夠在哪個時刻搶到,所以線程的執行有隨機性
04-多線程舉例及並行和併發的區別
註意兩個辭彙的區別: 並行和併發。
- 前者是邏輯上同時發生,指在某一個時間內同時運行多個程式。
- 後者是物理上同時發生,指在某-個時間點同時運行多個程式。
05-Java程式運行原理和JVM的啟動是多線程的嗎
- Java程式的運行原理:
由java命令啟動JVM, JVM啟動就相當於啟動了一個進程。
接著有該進程創建了一個主線程去調用main方法。
- jvm虛擬機的啟動是單線程的還是多線程的?
多線程的。
原因是垃圾回收線程也要先啟動,否則很容易會出現記憶體溢出。
現在的垃圾回收線程加上前面的主線程,最低啟動了兩個線程,所以,jvm的啟動其實是多線程的。