java多线程意义_Java多线程学习之多线程的概念及意义
Java的線程機制,則是由執行程序表示的單一進程創建的任務(拗口!),注意,是在單一進程里面創建多個任務,不同于操作系統分叉外部進程。由于所有的任務在同一個進程內,任務之間會相互干涉(例如操作同樣的對象,內存)。這些獨立的任務則是由執行線程來驅動,一個線程就是在進程中的一個單一的順序控制流。Java的線程機制是對操作系統透明的,線程不需要知道底層CPU是單核還是多核。線程通過切分CPU時間來獲得并發執行,需要消耗上下文切換(但是與進程切換相比要小很多)。
總結:Java運行的單一進程創建許多獨立的任務,而每一個任務都需要在一個線程上執行,以實現進程的多任務。
為何要創建多任務?這個問題等價于為何要使用并發編程。一個用戶經常使用的程序,一般都會有諸如關閉按鈕,隨時響應用戶輸入,并且不斷有可視化圖形界面輸出,試想如果沒有并發編程(即是沒有多任務)的情況下,進程只有一個任務在運行,假設是等待輸入。進程在等待用戶輸入的時候,進入IO阻塞,這時候,圖形界面靜止了,也沒法關閉進程(因為在等待用戶輸入,所有CPU時間都用在等待上面,無法響應關閉事件)。有了并發編程(即允許進程創建多個任務,這里3個任務就夠了:等待用戶輸入、等待關閉操作和輸入圖形界面),這些任務都能被分配到一定的CPU時間片,形象的說就是大家都有機會來執行(分配機制取決于運行的系統),這樣,即是等待用戶輸入任務進入了IO阻塞,CPU可以切換到其余兩個任務(注意CPU同一時間內只能執行一個任務,但是因為切換,看起來像是并發執行多個任務),這樣界面一樣有輸出,關閉操作也得到響應,而當用戶真的進行了輸入,等待用戶輸入任務還是可以響應用戶輸入(需要注意的是,這個響應用戶輸入并不是即時的,因為輸入發生時CPU不一定在執行等待用戶輸入任務,不過線程的調度機制可以確保得到響應)。
與線程一起被提及的另一個概念是進程,進程是運行在它自己的地址空間內的自包容的程序(不了解~~~~(>_
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java多线程意义_Java多线程学习之多线程的概念及意义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 部分抖音外链无法直接打开或复制跳转,微信
- 下一篇: java socket编程实现聊天程序_