成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

java中的線(xiàn)程指的是什么

今天就跟大家聊聊有關(guān)java中的線(xiàn)程指的是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

武安網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。

線(xiàn)程(英文:thread),臺(tái)灣地區(qū)譯為執(zhí)行緒(英文:thread of execution)、緒程,操作系統(tǒng)技術(shù)中的術(shù)語(yǔ),是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位,它被包涵在進(jìn)程之中,是行程中的實(shí)際運(yùn)作單位。一條線(xiàn)程指的是進(jìn)程中一個(gè)單一順序的控制流,一個(gè)進(jìn)程中可以并行多個(gè)線(xiàn)程,每條線(xiàn)程并行執(zhí)行不同的任務(wù)。

Java中每個(gè)線(xiàn)程都有一個(gè)調(diào)用棧,即使不在程序中創(chuàng)建任何新的線(xiàn)程,線(xiàn)程也在后臺(tái)運(yùn)行。main()方法運(yùn)行在一個(gè)線(xiàn)程內(nèi),稱(chēng)為主線(xiàn)程。一旦創(chuàng)建一個(gè)新的線(xiàn)程,就產(chǎn)生一個(gè)新的調(diào)用棧。

線(xiàn)程分為兩類(lèi):用戶(hù)線(xiàn)程和守候線(xiàn)程。當(dāng)所有用戶(hù)線(xiàn)程執(zhí)行完畢后,JVM自動(dòng)關(guān)閉。但是守候線(xiàn)程卻不獨(dú)立與JVM,守候線(xiàn)程一般是有操作系統(tǒng)或用戶(hù)自己創(chuàng)建的。

線(xiàn)程給我們帶來(lái)的好處

如果能合理地使用線(xiàn)程,將會(huì)減少開(kāi)發(fā)和維護(hù)成本,甚至可以改善復(fù)雜應(yīng)用程序的性能。如在GUI應(yīng)用程序中,還以通過(guò)線(xiàn)程的異步特性來(lái)更好地處理事件;在應(yīng)用服務(wù)器程序中可以通過(guò)建立多個(gè)線(xiàn)程來(lái)處理客戶(hù)端的請(qǐng)求。

線(xiàn)程甚至還可以簡(jiǎn)化虛擬機(jī)的實(shí)現(xiàn),如Java虛擬機(jī)(JVM)的垃圾回收器(garbage collector)通常運(yùn)行在一個(gè)或多個(gè)線(xiàn)程中。因此,使用線(xiàn)程將會(huì)從以下五個(gè)方面來(lái)改善我們的應(yīng)用程序:

1.   簡(jiǎn)化編程模型

如果程序只完成一項(xiàng)任務(wù),那只要寫(xiě)一個(gè)單線(xiàn)程的程序,并且按著執(zhí)行這個(gè)任務(wù)的步驟編寫(xiě)代碼即可。但要完成多項(xiàng)任務(wù),如果還使用單線(xiàn)程的話(huà),那就得在在程序中判斷每項(xiàng)任務(wù)是否應(yīng)該執(zhí)行以及什么時(shí)候執(zhí)行。如顯示一個(gè)時(shí)鐘的時(shí)、分、秒三個(gè)指針。

使用單線(xiàn)程就得在循環(huán)中逐一判斷這三個(gè)指針的轉(zhuǎn)動(dòng)時(shí)間和角度。如果使用三個(gè)線(xiàn)程分另來(lái)處理這三個(gè)指針的顯示,那么對(duì)于每個(gè)線(xiàn)程來(lái)說(shuō)就是指行一個(gè)單獨(dú)的任務(wù)。這樣有助于開(kāi)發(fā)人員對(duì)程序的理解和維護(hù)。

2.   簡(jiǎn)化異步事件的處理

當(dāng)一個(gè)服務(wù)器應(yīng)用程序在接收不同的客戶(hù)端連接時(shí)最簡(jiǎn)單地處理方法就是為每一個(gè)客戶(hù)端連接建立一個(gè)線(xiàn)程。然后監(jiān)聽(tīng)線(xiàn)程仍然負(fù)責(zé)監(jiān)聽(tīng)來(lái)自客戶(hù)端的請(qǐng)求。

如果這種應(yīng)用程序采用單線(xiàn)程來(lái)處理,當(dāng)監(jiān)聽(tīng)線(xiàn)程接收到一個(gè)客戶(hù)端請(qǐng)求后,開(kāi)始讀取客戶(hù)端發(fā)來(lái)的數(shù)據(jù),在讀完數(shù)據(jù)后,read方法處于阻塞狀態(tài),也就是說(shuō),這個(gè)線(xiàn)程將無(wú)法再監(jiān)聽(tīng)客戶(hù)端請(qǐng)求了。

而要想在單線(xiàn)程中處理多個(gè)客戶(hù)端請(qǐng)求,就必須使用非阻塞的Socket連接和異步I/O。但使用異步I/O方式比使用同步I/O更難以控制,也更容易出錯(cuò)。因此,使用多線(xiàn)程和同步I/O可以更容易地處理類(lèi)似于多請(qǐng)求的異步事件。

3. 充分利用CPU資源

現(xiàn)在世界上大多數(shù)計(jì)算機(jī)只有一塊CPU。因此,充分利用CPU資源顯得尤為重要。當(dāng)執(zhí)行單線(xiàn)程程序時(shí),由于在程序發(fā)生阻塞時(shí)CPU可能會(huì)處于空閑狀態(tài)。這將造成大量的計(jì)算資源的浪費(fèi)。

而在程序中使用多線(xiàn)程可以在某一個(gè)線(xiàn)程處于休眠或阻塞時(shí),而CPU又恰好處于空閑狀態(tài)時(shí)來(lái)運(yùn)行其他的線(xiàn)程。這樣CPU就很難有空閑的時(shí)候。因此,CPU資源就得到了充分地利用。

4.   使GUI更有效率

使用單線(xiàn)程來(lái)處理GUI事件時(shí),必須使用循環(huán)來(lái)對(duì)隨時(shí)可能發(fā)生的GUI事件進(jìn)行掃描,在循環(huán)內(nèi)部除了掃描GUI事件外,還得來(lái)執(zhí)行其他的程序代碼。如果這些代碼太長(zhǎng),那么GUI事件就會(huì)被“凍結(jié)”,直到這些代碼被執(zhí)行完為止。

在現(xiàn)代的GUI框架(如SWING、AWT和SWT)中都使用了一個(gè)單獨(dú)的事件分派線(xiàn)程(event dispatch thread,EDT)來(lái)對(duì)GUI事件進(jìn)行掃描。當(dāng)我們按下一個(gè)按鈕時(shí),按鈕的單擊事件函數(shù)會(huì)在這個(gè)事件分派線(xiàn)程中被調(diào)用。

由于EDT的任務(wù)只是對(duì)GUI事件進(jìn)行掃描,因此,這種方式對(duì)事件的反映是非常快的。

5.   節(jié)約成本

提高程序的執(zhí)行效率一般有三種方法:

(1)增加計(jì)算機(jī)的CPU個(gè)數(shù)。

(2)為一個(gè)程序啟動(dòng)多個(gè)進(jìn)程

(3)在程序中使用多線(xiàn)程。

看完上述內(nèi)容,你們對(duì)java中的線(xiàn)程有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

名稱(chēng)欄目:java中的線(xiàn)程指的是什么
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article26/gdpgjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、響應(yīng)式網(wǎng)站企業(yè)網(wǎng)站制作、軟件開(kāi)發(fā)、外貿(mào)建站虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
兰州市| 修武县| 汕头市| 成都市| 朝阳市| 张家口市| 龙门县| 廉江市| 从化市| 永福县| 阳东县| 合江县| 辽宁省| 乌海市| 龙州县| 都昌县| 澄迈县| 浮山县| 江津市| 喀喇沁旗| 汾阳市| 郸城县| 嘉荫县| 班戈县| 黔东| 山阴县| 开封市| 黔东| 应用必备| 东阿县| 广宁县| 仁布县| 藁城市| 鸡东县| 庐江县| 江西省| 连城县| 亳州市| 常熟市| 莱州市| 运城市|