大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 線程的基本概念

線程的基本概念

更新時(shí)間:2021-06-23 12:52:10 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1268次

基本概念

多任務(wù):同一時(shí)刻運(yùn)行多個(gè)程序的能力。每一個(gè)任務(wù)稱為一個(gè)線程。可以同時(shí)運(yùn)行一個(gè)以上線程的程序稱為多線程編程

Java編寫程序都運(yùn)行在Java虛擬機(jī)(JVM)中,在JVM的內(nèi)部,程序的多任務(wù)是通過線程來實(shí)現(xiàn)的。每用java命令啟動(dòng)一個(gè)java應(yīng)用程序,就會(huì)啟動(dòng)一個(gè)JVM進(jìn)程。在同一個(gè)JVM進(jìn)程中,有且只有一個(gè)進(jìn)程,就是它自己。在這個(gè)JVM環(huán)境中,所有程序代碼的運(yùn)行都是以線程來運(yùn)行。

一般常見的Java應(yīng)用程序都是單線程的。比如,用java命令運(yùn)行一個(gè)最簡單的HelloWorld的Java應(yīng)用程序時(shí),就啟動(dòng)了一個(gè)JVM進(jìn)程,JVM找到程序程序的入口點(diǎn)main(),然后運(yùn)行main()方法,這樣就產(chǎn)生了一個(gè)線程,這個(gè)線程稱之為主線程。當(dāng)main方法結(jié)束后,主線程運(yùn)行完成。JVM進(jìn)程也隨即退出 。

對于一個(gè)進(jìn)程中的多個(gè)線程來說,多個(gè)線程共享進(jìn)程的內(nèi)存塊,當(dāng)有新的線程產(chǎn)生的時(shí)候,操作系統(tǒng)不分配新的內(nèi)存,而是讓新線程共享原有的進(jìn)程塊的內(nèi)存。因此,線程間的通信很容易,速度也很快。不同的進(jìn)程因?yàn)樘幱诓煌膬?nèi)存塊,因此進(jìn)程之間的通信相對困難。

進(jìn)程是指一個(gè)內(nèi)存中運(yùn)行的應(yīng)用程序,每個(gè)進(jìn)程都有自己獨(dú)立的一塊內(nèi)存空間,一個(gè)進(jìn)程中可以啟動(dòng)多個(gè)線程。比如在Windows系統(tǒng)中,一個(gè)運(yùn)行的exe就是一個(gè)進(jìn)程。

線程是指進(jìn)程中的一個(gè)執(zhí)行流程,一個(gè)進(jìn)程可以運(yùn)行多個(gè)線程。比如java.exe進(jìn)程可以運(yùn)行很多線程。線程總是輸入某個(gè)進(jìn)程,進(jìn)程中的多個(gè)線程共享進(jìn)程的內(nèi)存。

Java中線程是指java.lang.Thread類的一個(gè)實(shí)例或線程的執(zhí)行。使用java.lang.Thread或java.lang.Runnable接口編寫代碼定義、實(shí)例化、啟動(dòng)新線程。

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

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

定義線程

1.擴(kuò)展java.lang.Thread類以及實(shí)現(xiàn)java.lang.Runnable接口。

此類中有run()方法,public void run(),如果該線程是獨(dú)立的Runnable運(yùn)行對象構(gòu)造的,則調(diào)用該Runnable對象的run()方法;否則,該方法不執(zhí)行任何操作。Thread的子類也應(yīng)該重寫該方法。

實(shí)例化線程

1.如果是擴(kuò)展了java.lang.Thread類的線程,則直接調(diào)用new即可。

2.如果是實(shí)現(xiàn)了jav.lang.Runnable接口的類,則調(diào)用Thread的構(gòu)造方法:

Thread(Runnable target)

Thread(Runnable target,String name)

Thread(ThreadGroup group, Runnable target)

Thread(ThreadGroup group, Runnable target, String name)

Thread(ThreadGroup group, Runnable target, String name, long stackSize)

啟動(dòng)線程

在線程的Thread對象上調(diào)用start()方法,而不是run()或別的方法。

在調(diào)用start()方法之前,線程處于新狀態(tài)中,新狀態(tài)有一個(gè)Thread對象,但沒有一個(gè)真正的線程。

在調(diào)用start()方法之后,發(fā)生了一系列復(fù)雜的事情:

啟動(dòng)新的執(zhí)行線程(具有新的調(diào)用棧);

該線程從新狀態(tài)轉(zhuǎn)移到可運(yùn)行狀態(tài);

當(dāng)該線程獲得執(zhí)行機(jī)會(huì)時(shí),其目標(biāo)run()方法將運(yùn)行。

注意事項(xiàng)

1.獲取當(dāng)前線程的對象的方法是:Thread.currentThread();

2.當(dāng)線程目標(biāo)run()方法結(jié)束時(shí)該線程完成。

3.一旦線程啟動(dòng),它就永遠(yuǎn)不能再重新啟動(dòng)。只有一個(gè)新的線程可以被啟動(dòng),并且只能一次。一個(gè)可運(yùn)行的線程或死線程可以被重新啟動(dòng)。

4.線程的調(diào)度是JVM的一部分,在一個(gè)CPU的機(jī)器上上,實(shí)際上一次只能運(yùn)行一個(gè)線程。一次只有一個(gè)線程棧執(zhí)行。JVM線程調(diào)度程序決定實(shí)際運(yùn)行哪個(gè)處于可運(yùn)行狀態(tài)的線程。眾多可運(yùn)行線程中的某一個(gè)會(huì)被選中做為當(dāng)前線程。可運(yùn)行線程被選擇運(yùn)行的順序是沒有保障的。

5.盡管通常采用隊(duì)列形式,但這是沒有保障的。隊(duì)列形式是指當(dāng)一個(gè)線程完成“一輪”時(shí),它移到可運(yùn)行隊(duì)列的尾部等待,直到它最終排隊(duì)到該隊(duì)列的前端為止,它才能被再次選中。事實(shí)上,我們把它稱為可運(yùn)行池而不是一個(gè)可運(yùn)行隊(duì)列,目的是幫助認(rèn)識(shí)線程并不都是以某種有保障的順序排列一個(gè)隊(duì)列的事實(shí)。

6.盡管我們沒有無法控制線程調(diào)度程序,但可以通過別的方式來影響線程調(diào)度的方式。

以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"線程的基本概念",希望對大家有幫助,想了解更多可查看Java多線程編程技術(shù)文檔,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。

提交申請后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 欧美精品亚洲精品日韩 | 91日韩视频在线观看 | 欧美一区二区三区综合色视频 | 精品二区| 亚洲国产中文字幕在线观看 | 普通话对白国产情侣自啪 | 91精品久久久| 免费一级特黄特色黄大任片 | 人人揉揉香蕉大免费不卡 | 亚洲精品久久99久久一区 | 国产精品午夜久久久久久99热 | 狠狠色丁香婷婷久久综合不卡 | 日本在线观看a | 99国内精品久久久久久久 | 日韩在线播放中文字幕 | 亚洲四区| 精品免费久久久久久影院 | 69成人网 | 99r在线视频| 欧美kkk4444在线观看 | 性欧美视频a毛片在线播放 性欧美视频在线观看 | 国产在线免 | 亚洲天堂h | 热99re久久精品这里都是免费 | 欧美日韩国产亚洲一区二区三区 | 免费中文字幕在线观看 | 久久免费精品视频在线观看 | 欧美在线激情视频 | 国产成人免费视频 | 日韩一区二区三区四区 | 欧美日韩成人在线视频 | 国产三级在线精品男人的天堂 | 青草精品视频 | 欧美日韩一区二区三区麻豆 | 精品国产一区二区三区在线观看 | 四虎影视精品永久免费 | 成人在线观看不卡 | 天天操夜夜操美女 | 亚洲国产二区三区久久 | 色综合欧美亚洲另类久久 | 国产一区曰韩二区欧美三区 |