大战熟女丰满人妻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ù)文檔推薦 >>
主站蜘蛛池模板: 4虎 影视 免费 | 久久综合欧美 | 日韩精品欧美国产精品亚 | 久久中文字幕综合不卡一二区 | 欧美一二区视频 | 久久精品午夜视频 | 久久久久激情免费观看 | 福利午夜影院 | 欧美一级毛片免费高清的 | 国产高清一级毛片在线不卡 | 日韩永久免费进入2015 | 91手机看片国产福利精品 | 四虎最新紧急入口 | 亚洲精品一区二区三区在线播放 | 精品综合久久久久久蜜月 | 99热自拍 | 国产69精品久久久久777 | 免费视频日韩 | 看a网址 | 国产精品国内免费一区二区三区 | 天天爽天天 | 欧美高清无砖专区欧美精品 | 色老板女色狠xx网 | 久久久亚洲欧美综合 | 最新99国产成人精品视频免费 | 国产精品亚洲综合一区 | 天天视频免费入口 | 欧美在线一级毛片视频 | 国产欧美综合在线一区二区三区 | 尻逼片| 亚洲一区二区三区免费视频 | 午夜综合 | 国产精品亚洲欧美日韩区 | 欧美日韩亚洲一区二区三区 | 欧美曰韩一区二区三区 | 国产三级做爰在线播放最爱 | 在线观看 一区 | 私人影院免费 | 最新午夜韩国理论片77网 | 91视频一区二区 | 国产综合色在线视频区色吧图片 |