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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java多線程并發(fā)原理

Java多線程并發(fā)原理

更新時間:2021-05-08 10:35:01 來源:動力節(jié)點 瀏覽999次

1.進程

進程是操作系統(tǒng)中運行的一個任務(wù)(一個應(yīng)用程序在一個進程中),進程(process)是一塊包含了某些資源的內(nèi)存區(qū)域,操作系統(tǒng)利用進程把它的工作劃分為一些功能單元。進程中包含的一個或多個執(zhí)行單元稱為線程。進程還有一個私有的虛擬內(nèi)存空間,該空間僅能被它所包含的線程訪問。線程只能歸屬一個進程并且它只能訪問該進程所擁有的資源。當操作系統(tǒng)創(chuàng)建一個進程后,該進程會主動申請一個主線程。

2.線程

一個線程是一個進程的順序執(zhí)行流。同類的多個線程共享一塊內(nèi)存空間和一組系統(tǒng)資源,線程本身有一個供程序執(zhí)行時的堆棧。線程在切換時負荷小,因此,線程也被稱為輕負荷進程,一個進程中可以包含多個線程。

3.進程和線程的區(qū)別

一個進程至少有一個線程。線程的劃分尺度小于進程,使得多線程程序的并發(fā)性高。另外,進程在執(zhí)行過程中擁有獨立的內(nèi)存單元,而多個線程共享內(nèi)存,從而極大地提高了程序運行效率。線程在執(zhí)行過程中與進程的區(qū)別在于每個獨立的線程有個程序運行入口、順序執(zhí)行序列和程序出口。但是線程不能獨立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個線程執(zhí)行控制。從邏輯角度看,多線程的意義在于一個應(yīng)用程序中,有多個執(zhí)行部分共同執(zhí)行一個資源。

4.并發(fā)原理

多個線程“同時”運行只是我們感觀上的一種表現(xiàn)。事實上線程是并發(fā)運行的,操作系統(tǒng)將時間劃分為很多時間段,盡可能的均勻分配給每一個線程,獲取到時間片的線程被CPU執(zhí)行,其他則一直在等待。所以微觀上是走走停停,宏觀上都在運行。這種現(xiàn)象叫并發(fā),但不是絕對意義上的同時發(fā)生。實則操作系統(tǒng)里面“同一時刻”只有一個線程在執(zhí)行,但是處理速率快,效果上是并發(fā)運行。

5.Thread創(chuàng)建線程

Thread類是線程類,其每一個實例表示一個可以并發(fā)運行的線程。我們可以通過繼承該類并重寫run方法來定義一個具體的線程,其中要重寫run方法是為了線程要執(zhí)行的邏輯。啟動線程時調(diào)用線程的start方法,start方法會將該線程納入線程調(diào)度,使當前線程可以開始并發(fā)運行,當該線程獲得時間片后會自動開始執(zhí)行run方法內(nèi)容。

public class TestThread extends Thread{
public void run(){
for(int i = 0; i < 100; i++){
System.out.println(''我是線程'');
}
}
}

定義好后實例化該對象,調(diào)用其start方法,啟動線程

TestThread thread = new TestThread();
thread.start();

6.Runnable創(chuàng)建線程

實現(xiàn)Runnable接口并重寫run方法來定義線程體,然后在創(chuàng)建線程的時候?qū)unnable的實例傳入并啟動線程。這樣做的好處在于將線程和線程執(zhí)行的任務(wù)分離開解耦合。同時Java是單繼承,實現(xiàn)接口可以更好的讓該類去繼承其他類。

public class TestRunnable implements Runnable{
public void run(){
for(int i = 0; i < 100; i++){
System.out.println(''我是線程'');
}
}
}

定義好后,可以實例化該實現(xiàn)類并調(diào)用start方法啟動線程

Thread thread = new Thread(new TestRunnable());
thread.start();

7.內(nèi)部類創(chuàng)建線程

通常我們可以通過匿名內(nèi)部類的方式創(chuàng)建線程,使用該方式可以簡化編寫代碼的復(fù)雜度,當一個線程僅需要一個實例時我們通常使用這種方式來創(chuàng)建。

Thread thread = new Thread(){
public void run(){
//線程體
}
};
thread.start();
Runnable thread = new Runnable(){
public void run(){
//線程體
}
};
thread.start();

以上就是動力節(jié)點小編介紹的"Java多線程并發(fā)原理",希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為您服務(wù)。

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

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 黄色毛片小视频 | 午夜欧美精品久久久久久久 | 国产一区二区精品久久凹凸 | 日本免费不卡在线一区二区三区 | 麻豆精品久久精品色综合 | 国产在线观看美女福利精 | 国产精品99爱免费视频 | 日韩亚洲欧美综合一区二区三区 | 中国第一毛片 | 操操操爽爽爽 | 成人久久久观看免费毛片 | 国产成人香蕉在线视频网站 | 日日舔| 国产91嫩草精品 | 成熟热自由日本语亚洲人 | 日韩在线a视频免费播放 | 114一级毛片免费观看 | 久草视频观看 | 九九re| 五月婷影院 | 久久综合偷偷噜噜噜色 | 中国jizz日本 | 日本免费一区二区三区看片 | 午夜视频国产 | 国产福利一区二区精品视频 | 国产五月色综合 | 天天操夜夜爽 | 新久草在线 | 青青久久久国产线免观 | 欧美xxxxx性另类 | 亚洲欧美在线一区 | 免费亚洲网站 | 天天操夜夜操视频 | 日韩一级不卡 | 拍拍拍精品视频在线观看 | 北岛玲日韩精品一区二区三区 | 久久精品天天中文字幕人 | 欧美日韩一级黄色片 | 99精品这里只有精品高清视频 | 精品国产免费福利片 | 精品国产免费福利片 |