進程、線程、多線程的引入

1、進程 
一、進程是java特有的。java

二、進程:是一個正在執行中的程序。 進程負責了內存空間的劃分。 
每個進程執行都有一個執行順序。 
該順序是一個執行路徑,或者叫一個控制單元。windows

三、問題: windows號稱是多任務的操做系統,那麼windows是同時運行多個應用程序嗎? 
1)從宏觀的角度: windows確實是在同時運行多個應用程序。 
2)從微觀角度: cpu是作了一個快速切換執行的動做,因爲速度態度,因此我感受不到在切換而已。 
安全

2、線程 
一、線程在一個進程中負責了代碼的執行,就是進程中一個執行路徑。 

二、線程:就是進程中的一個獨立的控制單元多線程

三、線程在控制着進程的執行。jvm

一個進程中至少有一個線程。操作系統

補充一個報錯信息:java.lang.NoClassDefFoundError ->java中tools下的jar文件找不到了線程

3、多線程: 
一、多線程: 在一個進程中有多個線程同時在執行不一樣的任務。進程

二、疑問 :線程負責了代碼的執行,咱們以前沒有學過線程,爲何代碼能夠執行呢? 
答: 
1)運行任何一個java程序,jvm在運行的時候都會建立一個main線程執行main方法中全部代碼。 
2)Java VM 啓動的時候會有一個進程java.exe。該進程中至少一個線程負責java程序的執行。並且這個線程運行的代碼存在於main方法中,該線程稱之爲主線程。內存

三、一個java應用程序至少有幾個線程? 
答:至少有兩個線程, 一個是主線程負責main方法代碼的執行,一個是垃圾回收器線程,負責了回收垃圾。資源

擴展:其實更細節說明jvm,jvm啓動不止一個線程,還有負責垃圾回收機制的線程。

四、多線程有什麼好處呢? 
1)解決了一個進程能同時執行多個任務的問題。 
2)提升了資源的利用率。例如:在下載時效率會有所提升。

五、多線程的弊端:  1)增長cpu的負擔。  2)下降了一個進程中線程的執行機率。  3)引起了線程安全 問題。  4)出現了死鎖現象。

相關文章
相關標籤/搜索