概念
進程:進程(Process)是計算機中的程序關于某數(shù)據集合上的一次運行活動,是系統(tǒng)進行資源分配和調度的基本單位,是操作系統(tǒng)結構的基礎。在早期面向進程設計的計算機結構中瓤帚,進程是程序的基本執(zhí)行實體;在當代面向線程設計的計算機結構中涩赢,進程是線程的容器戈次。程序是指令、數(shù)據及其組織形式的描述筒扒,進程是程序的實體怯邪。(百度百科)
windows系統(tǒng)用戶打開任務管理器就能看到進程那一欄啦~什么QQ啊 網易云音樂啊之類的
線程:以上概念簡單提及到了線程,其可以理解為在進程中獨立運行的子任務,如QQ一個進程在運行時,其實有很多子任務在同時運行,因為我們可以使用QQ同時聊天,發(fā)文件甚至視頻,其中每一項任務可以理解成線程.
多線程的優(yōu)點:
簡單的理解來講,假如咱們在使用電腦的時候聽歌就不能同時打游戲,那估計沒人用電腦了.
圖文并茂助于更有效的理解
任務1和任務2兩個完全獨立的任務,任務1在等待服務器返回數(shù)據,此時CPU處于等待狀態(tài).任務2在10秒之后被運行,雖然其只用1秒完成任務,但是必須在任務1之后才能執(zhí)行.由此可見單任務環(huán)境下效率之低,但是其特點就是同步,必須等待1完成后確認無誤才執(zhí)行2.
多任務環(huán)境下任務1和任務2來回切換,任務2不必等任務1完成后才執(zhí)行,系統(tǒng)的運行效率大大提升.
這就是要使用多線程技術的原因,即可以在異步環(huán)境下使用多線程
PAT ATTENTION
該系列文章僅為作者的讀書筆記,非商業(yè)行為花墩,摘自《Java多線程編程核心技術》——高洪巖