Java多線程原理+基礎知識(超級超級詳細)+(併發與並行)+(進程與線程)1

Java多線程

咱們先來了解兩個概念!!!!
1.什麼是併發與並行
2.什麼是進程與線程java

1.什麼是併發與並行

1.1並行:兩個事情在同一時刻發生
在這裏插入圖片描述
1.2併發:兩個事情在同一時間段內發生
在這裏插入圖片描述
併發與並行的區別:
1.並行是指兩個或者多個事件在同一時刻發生;而併發是指兩個或多個事件在同一時間間隔發生。
2.並行是不一樣實體上的多個事件,併發是多個實體的不一樣事件
3.並行是多個處理器同時處理多個任務,併發是一個處理器「同時「處理多個任務
併發的同時是指宏觀上的同時:
在同一時刻只能有一條指令執行,但多個進程指令被快速的輪換執行,使得在宏觀上具備多個進程同時執行的效果,但在微觀上並非同時執行的,只是把時間分紅若干段,使多個進程快速交替的執行。
小科普
而在多個 CPU 系統中,則這些能夠併發執行的程序即可以分配到多個處理器上(CPU),實現多任務並行執行, 即利用每一個處理器來處理一個能夠併發執行的程序,這樣多個程序即可以同時執行。目前電腦市場上說的多核 CPU,即是多核處理器,核 越多,並行處理的程序越多,能大大的提升電腦運行的效率。多線程

什麼是進程與線程

進程:數值一個內存中的應用程序,每一個進程都有一個獨立的存儲空間,一個應用程序能夠同時運行多個進程,進程是程序的一次執行過程,是系統運行的基本單位,系統運行一個程序是一個進程從建立運行到消亡的過程
打開任務管理器就能夠看到計算機上運行的進程併發

在這裏插入圖片描述

線程:線程是進程的一個執行單元,負責當前進程中程序的執行,一個進程能夠有多個線程多個線程的程序被稱爲多線程程序
這些就是一個個進程學習

在這裏插入圖片描述線程調度
分時調度
全部線程輪流使用cpu的使用權,平均分配每一個線程佔用cpu的時間
搶佔式調度
搶先讓優先級高的線程使用cpu,若是線程優先級相同,那麼會隨機選擇一個執行,java使用搶佔式調度
設置線程的優先級
在這裏插入圖片描述搶佔式調度的好處
大部分操做系統都支持多進程併發運行,如今的操做系統都支持同時運行多個程序好比咱們能夠在打lol的時候同時聽歌
實際上cpu使用搶佔式調度模式在多個線程之間進行高速的切換,對於cpu的一個核而言,某個時刻只能執行一個線程,而cpu在多個線程之間切換速度很快看上去像在同一時刻運行,多線程不能提升程序的運行速度,可是能夠提升程序的運行效率,讓cpu的使用效率更高操作系統

這是學習java多線程前須要瞭解的一些基礎知識,我下一篇文章會來簡述java多線程的使用
若有錯誤還請各位批評指正線程

相關文章
相關標籤/搜索