1. 程式人生 > 實用技巧 >HTTP各版本的區別

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多執行緒的使用

如有錯誤還請各位批評指正