HTTP各版本的區別
Java多執行緒
我們先來瞭解兩個概念!!!!
1.什麼是併發與並行
2.什麼是程式與執行緒
1.什麼是併發與並行
1.1並行:兩個事情在同一時刻發生
1.2併發:兩個事情在同一時間段內發生
併發與並行的區別:
1.並行是指兩個或者多個事件在同一時刻發生;而併發是指兩個或多個事件在同一時間間隔發生。
2.並行是不同實體上的多個事件,併發是多個實體的不同事件
3.並行是多個處理器同時處理多個任務,併發是一個處理器“同時“處理多個任務
併發的同時是指巨集觀上的同時:
在同一時刻只能有一條指令執行,但多個程式指令被快速的輪換執行,使得在巨集觀上具有多個程式同時執行的效果,但在微觀上並不是同時執行的,只是把時間分成若干段,使多個程式快速交替的執行。
小科普
而在多個 CPU 系統中,則這些可以併發執行的程式便可以分配到多個處理器上(CPU),實現多工並行執行, 即利用每個處理器來處理一個可以併發執行的程式,這樣多個程式便可以同時執行。目前電腦市場上說的多核 CPU,便是多核處理器,核 越多,並行處理的程式越多,能大大的提高電腦執行的效率。
什麼是程式與執行緒
程式:數值一個記憶體中的應用程式,每個程式都有一個獨立的儲存空間,一個應用程式可以同時執行多個程式,程式是程式的一次執行過程,是系統執行的基本單位,系統執行一個程式是一個程式從建立執行到消亡的過程
開啟工作管理員就可以看到計算機上執行的程式
執行緒:執行緒是程式的一個執行單元,負責當前程式中程式的執行,一個程式可以有多個執行緒多個執行緒的程式被稱為多執行緒程式
這些就是一個個程式
執行緒排程
分時排程
所有執行緒輪流使用cpu的使用權,平均分配每個執行緒佔用cpu的時間
搶佔式排程
搶先讓優先順序高的執行緒使用cpu,如果執行緒優先順序相同,那麼會隨機選擇一個執行,java使用搶佔式排程
設定執行緒的優先順序
搶佔式排程的好處
大部分作業系統都支援多程式併發執行,現在的作業系統都支援同時執行多個程式比如我們可以在打lol的時候同時聽歌
實際上cpu使用搶佔式排程模式在多個執行緒之間進行高速的切換,對於cpu的一個核而言,某個時刻只能執行一個執行緒,而cpu在多個執行緒之間切換速度很快看上去像在同一時刻執行,多執行緒不能提高程式的執行速度,但是可以提高程式的執行效率,讓cpu的使用效率更高
這是學習java多執行緒前需要了解的一些基礎知識,我下一篇文章會來簡述java多執行緒的使用
如有錯誤還請各位批評指正