溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎樣解析Java基礎(chǔ)多線程

發(fā)布時間:2021-11-26 10:29:08 來源:億速云 閱讀:115 作者:柒染 欄目:編程語言

怎樣解析Java基礎(chǔ)多線程,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

 多線程是Java學(xué)習(xí)的非常重要的方面,是每個Java程序員必須掌握的基本技能。

一、進(jìn)程

  進(jìn)程是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ);是一次程序的執(zhí)行;是一個程序及其數(shù)據(jù)在處理機上順序執(zhí)行時所發(fā)生的活動。操作系統(tǒng)中,幾乎所有運行中的任務(wù)對應(yīng)一條進(jìn)程(Process)。一個程序進(jìn)入內(nèi)存運行,即變成一個進(jìn)程。進(jìn)程是處于運行過程中的程序,并且具有一定獨立功能。描述進(jìn)程的有一句話非常經(jīng)典——進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨立單位。

  進(jìn)程是系統(tǒng)中獨立存在的實體,擁有自己獨立的資源,擁有自己私有的地址空間。進(jìn)程的實質(zhì),就是程序在多道程序系統(tǒng)中的一次執(zhí)行過程,它是動態(tài)產(chǎn)生,動態(tài)消亡的,具有自己的生命周期和各種不同的狀態(tài)。進(jìn)程具有并發(fā)性,它可以同其他進(jìn)程一起并發(fā)執(zhí)行,按各自獨立的、不可預(yù)知的速度向前推進(jìn)?!?/p>

(注意,并發(fā)性(concurrency)和并行性(parallel)是不同的。并行指的是同一時刻,多個指令在多臺處理器上同時運行。并發(fā)指的是同一時刻只能有一條指令執(zhí)行,但多個進(jìn)程指令被被快速輪換執(zhí)行,看起來就好像多個指令同時執(zhí)行一樣。)

  進(jìn)程由程序、數(shù)據(jù)和進(jìn)程控制塊三部分組成。

二、線程

  線程,有時被稱為輕量級進(jìn)程(LightweightProcess,LWP),是程序執(zhí)行流的最小單元。一個標(biāo)準(zhǔn)的線程由線程ID,當(dāng)前指令指針(PC),寄存器集合和堆棧組成。另外,線程是進(jìn)程中的一個實體,是被系統(tǒng)獨立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點兒在運行中必不可少的資源,但它可與同屬一個進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源。一個線程可以創(chuàng)建和撤消另一個線程,同一進(jìn)程中的多個線程之間可以并發(fā)執(zhí)行。由于線程之間的相互制約,致使線程在運行中呈現(xiàn)出間斷性。每一個程序都至少有一個線程,若程序只有一個線程,那就是程序本身。

  線程是程序中一個單一的順序控制流程。在單個程序中同時運行多個線程完成不同的工作,稱為多線程。

   在Java Web中要注意,線程是JVM級別的,在不停止的情況下,跟JVM共同消亡,就是說如果一個Web服務(wù)啟動了多個Web應(yīng)用,某個Web應(yīng)用啟動了某個線 程,如果關(guān)閉這個Web應(yīng)用,線程并不會關(guān)閉,因為JVM還在運行,所以別忘了設(shè)置Web應(yīng)用關(guān)閉時停止線程。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI