Thread進(jìn)階第二彈 ----- 什么是Thread ? 什么是多線程?

什么是Thread

官方解釋:
線程(英語:thread)是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位。它被包含在進(jìn)程之中,是進(jìn)程中的實際運(yùn)作單位。一條線程指的是進(jìn)程中一個單一順序的控制流,一個進(jìn)程中可以并發(fā)多個線程,每條線程并行執(zhí)行不同的任務(wù)。(維基百科)

多線程

什么是多線程?

單CPU時代,單任務(wù)在一個時間點(diǎn)只能執(zhí)行單一程序,且不存在真正意義上的多線程,多線程只是微觀上串行,宏觀上并行,因為電腦來回切換線程執(zhí)行的速度很快,所以用戶感覺不到,但現(xiàn)在計算機(jī)發(fā)展到多處理器,可以實現(xiàn)真正意義上的多線程,即一個處理器處理一個線程.

為什么要使用多線程?

大家都知道CPU是寶貴的資源,一條線程執(zhí)行的任務(wù)不一定全部都需要CPU來執(zhí)行,IO操作,這時候CPU是空閑的,多線程可以讓一個線程不用的時候,CPU 讓給另一個線程來使用. 提高了資源利用率,進(jìn)而又提高了用戶的體驗.

多線程越多越好嗎?

結(jié)合上一章我們知道,線程切換需要消耗一定的資源,所以多線程也需要控制在合理的范圍內(nèi)才可以更好的發(fā)揮其魅力. 并不是越多越好上一章還提到,線程還需要一些內(nèi)存來維持它本地的堆棧。它也需要占用操作系統(tǒng)中一些資源來管理線程,請注意這里,下面會用到.


多線程并發(fā)

準(zhǔn)備

  • 你需要了解java 內(nèi)存模型
  • 硬件內(nèi)存架構(gòu)和JVM之間的關(guān)系
  • 理解Java的堆和棧,引用是在棧上, 而對象是在堆上.(有特殊情況)
    簡述 每一個運(yùn)行在Java虛擬機(jī)里的線程都擁有!自己的線程棧!,也就是棧。這個線程棧包含了這個線程調(diào)用的方法當(dāng)前執(zhí)行點(diǎn)相關(guān)的信息。一個線程僅能訪問自己的線程棧。

竟態(tài)條件

由上句話可知,每個線程都有自己對資源的引用,比如屏幕當(dāng)前顯示的一張圖片,線程一中謂之"image1"(棧中的名稱而已"),線程二中謂之"image2",而引用的對象是在堆上的,或者是其他的公共資源(圖片在公共內(nèi)存中),如文件等,是共享的,而存放在堆上的對象可以被所有持有對這個對象引用的線程訪問(兩個線程都可以修改各自的image1/image2)。當(dāng)進(jìn)行一個對象操作的時候,線程會將這個對象從堆上讀取到自己的寄存器里處理(拿過來畫成豬),在處理完之后,會將結(jié)果返回(放回去顯示),但是在過程中如果有線程也對此對象進(jìn)行了操作呢(線程二拿過來畫成牛)?那就可能出現(xiàn)混亂和不可預(yù)知的結(jié)果("最后是豬還是牛").這也就是所謂的"競態(tài)條件"

知道他是什么,知道他從哪里來,知道他為什么來,知道他來了干什么,才可謂之學(xué)問啊

預(yù)知后事如何,且聽下回分解.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Object C中創(chuàng)建線程的方法是什么?如果在主線程中執(zhí)行代碼,方法是什么?如果想延時執(zhí)行代碼、方法又是什么? 1...
    AlanGe閱讀 1,913評論 0 17
  • 又來到了一個老生常談的問題,應(yīng)用層軟件開發(fā)的程序員要不要了解和深入學(xué)習(xí)操作系統(tǒng)呢? 今天就這個問題開始,來談?wù)劜?..
    tangsl閱讀 4,317評論 0 23
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,881評論 25 709
  • Android Handler機(jī)制系列文章整體內(nèi)容如下: Android Handler機(jī)制1之ThreadAnd...
    隔壁老李頭閱讀 12,763評論 24 98
  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,787評論 11 349

友情鏈接更多精彩內(nèi)容