亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

JAVA并發(fā)編程--1.基礎(chǔ)概念

abson / 3072人閱讀

摘要:線程線程,是程序執(zhí)行流的最小單元。由于線程之間的相互制約,致使線程在運(yùn)行中呈現(xiàn)出間斷性。線程的狀態(tài)機(jī)線程也有就緒阻塞和運(yùn)行三種基本狀態(tài)。在單個(gè)程序中同時(shí)運(yùn)行多個(gè)線程完成不同的工作,稱為多線程??梢砸暈椴煌€程競(jìng)爭(zhēng)一把鎖。

進(jìn)程線程協(xié)程 進(jìn)程

進(jìn)程是一個(gè)實(shí)體。每一個(gè)進(jìn)程都有它自己的地址空間,

文本區(qū)域(text region)

數(shù)據(jù)區(qū)域(data region)

堆棧(stack region)。

文本區(qū)域存儲(chǔ)處理器執(zhí)行的代碼;數(shù)據(jù)區(qū)域存儲(chǔ)變量和進(jìn)程執(zhí)行期間使用的動(dòng)態(tài)分配的內(nèi)存;堆棧區(qū)域存儲(chǔ)著活動(dòng)過程調(diào)用的指令和本地變量。

進(jìn)程是一個(gè)“執(zhí)行中的程序”。程序是一個(gè)沒有生命的實(shí)體,只有處理器賦予程序生命時(shí)(操作系統(tǒng)執(zhí)行之),它才能成為一個(gè)活動(dòng)的實(shí)體,我們稱其為進(jìn)程。

線程

線程,是程序執(zhí)行流的最小單元。一個(gè)標(biāo)準(zhǔn)的線程

線程ID,

當(dāng)前指令指針(PC)

寄存器集合

堆棧

線程是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點(diǎn)兒在運(yùn)行中必不可少的資源,但它可與同屬一個(gè) 進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源。一個(gè)線程可以創(chuàng)建和撤消另一個(gè)線程,同一進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行。由于線程之間的相互制約,致使線程 在運(yùn)行中呈現(xiàn)出間斷性。

線程的狀態(tài)機(jī)

線程也有就緒、阻塞和運(yùn)行三種基本狀態(tài)。就緒狀態(tài)是指線程具備運(yùn)行的所有條件,邏輯上可以運(yùn)行,在等待處理機(jī);運(yùn)行狀態(tài)是指線程占有處理機(jī)正在運(yùn)行;阻塞狀態(tài)是指線程在等待一個(gè)事件(如某個(gè)信號(hào)量),邏輯上不可執(zhí)行。每一個(gè)程序都至少有一個(gè)線程,若程序只有一個(gè)線程,那就是程序本身。
線程是程序中一個(gè)單一的順序控制流程。進(jìn)程內(nèi)一個(gè)相對(duì)獨(dú)立的、可調(diào)度的執(zhí)行單元,是系統(tǒng)獨(dú)立調(diào)度和分派CPU的基本單位指運(yùn)行中的程序的調(diào)度單位。在單個(gè)程序中同時(shí)運(yùn)行多個(gè)線程完成不同的工作,稱為多線程。

線程是程序中一個(gè)單一的順序控制流程。進(jìn)程內(nèi)一個(gè)相對(duì)獨(dú)立的、可調(diào)度的執(zhí)行單元,是系統(tǒng)獨(dú)立調(diào)度和分派CPU的基本單位指運(yùn)行中的程序的調(diào)度單位。在單個(gè)程序中同時(shí)運(yùn)行多個(gè)線程完成不同的工作,稱為多線程。

協(xié)程

協(xié)程coroutine和線程一樣共享堆,不共享?xiàng)?,協(xié)程由程序員在協(xié)程的代碼里顯示調(diào)度,實(shí)現(xiàn)用戶態(tài)中的切換。因此被認(rèn)為更輕量,開銷更低。
協(xié)程同一時(shí)間只能有一個(gè)協(xié)程運(yùn)行,golang的goroutine采用的線程的方式,可能存在并行。

選型 

進(jìn)程、線程、協(xié)程的關(guān)系和區(qū)別:

進(jìn)程擁有自己獨(dú)立的堆和棧,既不共享堆,亦不共享?xiàng)?,進(jìn)程由操作系統(tǒng)調(diào)度。

線程擁有自己獨(dú)立的棧和共享的堆,共享堆,不共享?xiàng)?,線程亦由操作系統(tǒng)調(diào)度(標(biāo)準(zhǔn)線程是的)。

協(xié)程和線程一樣共享堆,不共享?xiàng)?,協(xié)程由程序員在協(xié)程的代碼里顯示調(diào)度。

CPU密集型應(yīng)用
多核的環(huán)境下,多線程可以充分利用CPU

IO密集型應(yīng)用
理論上協(xié)程或者NIO的處理方式較佳

線程使用 創(chuàng)建線程

JAVA有2種方式實(shí)現(xiàn)

繼承java.lang.Thread類

實(shí)現(xiàn)java.lang.Runnable接口,并重寫run方法

啟動(dòng)/暫停線程

thread.start()

thread.stop()

互斥

使用synchronized關(guān)鍵字聲明的方法,會(huì)在線程間進(jìn)行同步??梢砸暈椴煌€程競(jìng)爭(zhēng)一把鎖。當(dāng)線程運(yùn)行時(shí)加鎖,結(jié)束運(yùn)行或異常退出時(shí)釋放

中斷

調(diào)用thread.interrupt()方法讓線程進(jìn)入中斷interrupted狀態(tài),可通過調(diào)用isInterrupted來(lái)確認(rèn)是否進(jìn)入中斷狀態(tài)

等待/喚醒

調(diào)用thread.wait()方法讓線程進(jìn)入等待狀態(tài),進(jìn)入此狀態(tài)的線程可被其他線程的notify()/notifyAll()方法喚醒繼續(xù)執(zhí)行下文,也可被interrupt()進(jìn)入中斷
如果執(zhí)行wait時(shí)指定了時(shí)間。那么當(dāng)計(jì)時(shí)器到達(dá)指定時(shí)間后,如果沒有被notify喚醒,該線程也會(huì)被喚醒。

狀態(tài)機(jī)圖例

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/73023.html

相關(guān)文章

  • 多線程編程完全指南

    摘要:在這個(gè)范圍廣大的并發(fā)技術(shù)領(lǐng)域當(dāng)中多線程編程可以說(shuō)是基礎(chǔ)和核心,大多數(shù)抽象并發(fā)問題的構(gòu)思與解決都是基于多線程模型來(lái)進(jìn)行的。一般來(lái)說(shuō),多線程程序會(huì)面臨三類問題正確性問題效率問題死鎖問題。 多線程編程或者說(shuō)范圍更大的并發(fā)編程是一種非常復(fù)雜且容易出錯(cuò)的編程方式,但是我們?yōu)槭裁催€要冒著風(fēng)險(xiǎn)艱辛地學(xué)習(xí)各種多線程編程技術(shù)、解決各種并發(fā)問題呢? 因?yàn)椴l(fā)是整個(gè)分布式集群的基礎(chǔ),通過分布式集群不僅可以大...

    mengera88 評(píng)論0 收藏0
  • Java并發(fā)Java并發(fā)編程與高并發(fā)基礎(chǔ)概念

    摘要:筆記來(lái)源并發(fā)編程與高并發(fā)解決方案并發(fā)基礎(chǔ)綜述多級(jí)緩存緩存一致性亂序執(zhí)行優(yōu)化內(nèi)存模型規(guī)定抽象結(jié)構(gòu)同步八種操作及規(guī)則并發(fā)的優(yōu)勢(shì)與風(fēng)險(xiǎn)并發(fā)與高并發(fā)基本概念基本概念并發(fā)同時(shí)擁有兩個(gè)或者多個(gè)線程,如果程序在單核處理器上運(yùn)行,多個(gè)線程將交替地?fù)Q入或者換 筆記來(lái)源:【IMOOC】Java并發(fā)編程與高并發(fā)解決方案 并發(fā)基礎(chǔ) 綜述: CPU多級(jí)緩存:緩存一致性、亂序執(zhí)行優(yōu)化 Java內(nèi)存模型:JM...

    stackfing 評(píng)論0 收藏0
  • java并發(fā)編程學(xué)習(xí)之基礎(chǔ)概念

    摘要:線程和進(jìn)程參考進(jìn)程和線程的區(qū)別和聯(lián)系線程線程作為獨(dú)立運(yùn)行和獨(dú)立調(diào)度的基本單位。由于線程比進(jìn)程更小,基本上不擁有系統(tǒng)資源,故對(duì)它的調(diào)度所付出的開銷就會(huì)小得多,能更高效的提高系統(tǒng)內(nèi)多個(gè)程序間并發(fā)執(zhí)行的程度。進(jìn)程進(jìn)程作為分配資源的基本單位。 線程和進(jìn)程 參考進(jìn)程和線程的區(qū)別和聯(lián)系 線程:線程作為獨(dú)立運(yùn)行和獨(dú)立調(diào)度的基本單位。由于線程比進(jìn)程更小,基本上不擁有系統(tǒng)資源,故對(duì)它的調(diào)度所付出的開銷...

    enali 評(píng)論0 收藏0
  • Java學(xué)習(xí)必備書籍推薦終極版!

    摘要:實(shí)戰(zhàn)高并發(fā)程序設(shè)計(jì)推薦豆瓣評(píng)分書的質(zhì)量沒的說(shuō),推薦大家好好看一下。推薦,豆瓣評(píng)分,人評(píng)價(jià)本書介紹了在編程中條極具實(shí)用價(jià)值的經(jīng)驗(yàn)規(guī)則,這些經(jīng)驗(yàn)規(guī)則涵蓋了大多數(shù)開發(fā)人員每天所面臨的問題的解決方案。 很早就想把JavaGuide的書單更新一下了,昨晚加今天早上花了幾個(gè)時(shí)間對(duì)之前的書單進(jìn)行了分類和補(bǔ)充完善。雖是終極版,但一定還有很多不錯(cuò)的 Java 書籍我沒有添加進(jìn)去,會(huì)繼續(xù)完善下去。希望這篇...

    Steve_Wang_ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<