亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java中多線程原理詳解

瀏覽:22日期:2022-09-05 15:31:08
學(xué)過(guò)Java的人都知道,Java是少數(shù)的集中支持多線程的語(yǔ)言之一,大多數(shù)的語(yǔ)言智能運(yùn)行單獨(dú)的一個(gè)程序塊,無(wú)法同時(shí)運(yùn)行不同的多個(gè)程序塊,Java的多線程機(jī)制彌補(bǔ)了這個(gè)缺憾,他可以讓不同的程序塊一起運(yùn)行,這樣可以讓程序運(yùn)行更加順暢,同時(shí)也達(dá)到了多任務(wù)處理的目的:

一、線程和進(jìn)程的概念

現(xiàn)在的操作系統(tǒng)是多任務(wù)操作系統(tǒng)。多線程是實(shí)現(xiàn)多任務(wù)的一種方式。

進(jìn)程是程序的一個(gè)動(dòng)態(tài)執(zhí)行過(guò)程,是指一個(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)存。“同時(shí)”執(zhí)行是人的感覺(jué),在線程之間實(shí)際上輪換執(zhí)行。

二、Java中線程的實(shí)現(xiàn)

在Java中藥想實(shí)現(xiàn)多線程有兩種手段,一種是集成Thread類,另一種就是實(shí)現(xiàn)Runnable接口。下面看繼承自Thread類線程的創(chuàng)建原理:

首先定義一個(gè)線程類 該類必須繼承自Thread類,同時(shí)必須明確的覆寫run()方法

如:

class MyThread extends Thread{public void run(){ //覆寫Thread類中的run方法此方法是線程中線程主體; 的主體}

然后定義一個(gè)主類,實(shí)例化線程類的對(duì)象,發(fā)動(dòng)啟動(dòng)線程的命令

如:

public class ThreadText{public stataic void main(String args[]){MyThread m1=new MyThread();//實(shí)例化對(duì)象m1.start();//啟動(dòng)多線程}};

 實(shí)現(xiàn)Runnable接口:

首先定義一個(gè)線程類繼承自Runnable接口

如:

class MyThread implements Runnable{public void run(){ //覆寫Runnable接口中的run方法線程主體;}

 然后定義一個(gè)主類,實(shí)例化線程類的對(duì)象,發(fā)動(dòng)啟動(dòng)線程的命令

如:

public class ThreadText{public stataic void main(String args[]){MyThread m1=new MyThread();//實(shí)例化Runnable子類對(duì)象Thread t1=new Thread(m1);//實(shí)例化Thread類對(duì)象t1.start();//啟動(dòng)多線程}};

三、線程的幾種狀態(tài)

在Java當(dāng)中,線程通常都有五種狀態(tài),創(chuàng)建、就緒、運(yùn)行、阻塞和死亡。

第一是創(chuàng)建狀態(tài)。在生成線程對(duì)象,并沒(méi)有調(diào)用該對(duì)象的start方法,這是線程處于創(chuàng)建狀態(tài)。

第二是就緒狀態(tài)。當(dāng)調(diào)用了線程對(duì)象的start方法之后,該線程就進(jìn)入了就緒狀態(tài),但是此時(shí)線程調(diào)度程序還沒(méi)有把該線程設(shè)置為當(dāng)前線程,此時(shí)處于就緒狀態(tài)。在線程運(yùn)行之后,從等待或者睡眠中回來(lái)之后,也會(huì)處于就緒狀態(tài)。

第三是運(yùn)行狀態(tài)。線程調(diào)度程序?qū)⑻幱诰途w狀態(tài)的線程設(shè)置為當(dāng)前線程,此時(shí)線程就進(jìn)入了運(yùn)行狀態(tài),開(kāi)始運(yùn)行run函數(shù)當(dāng)中的代碼。

第四是阻塞狀態(tài)。線程正在運(yùn)行的時(shí)候,被暫停,通常是為了等待某個(gè)時(shí)間的發(fā)生(比如說(shuō)某項(xiàng)資源就緒)之后再繼續(xù)運(yùn)行。sleep,suspend,wait等方法都可以導(dǎo)致線程阻塞。

第五是死亡狀態(tài)。如果一個(gè)線程的run方法執(zhí)行結(jié)束或者調(diào)用stop方法后,該線程就會(huì)死亡。對(duì)于已經(jīng)死亡的線程,無(wú)法再使用start方法令其進(jìn)入就緒。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产在播放一区 | 91国内在线视频 | 一级特黄录像视频免费 | 综合天天| 免费大片黄在线观看日本 | 91网址在线播放 | 黄色免费在线观看网址 | 欧美日韩一区二区三区四区 | 日韩免费看 | 久久不射网 | 一级一片免费播放 | 国产区一区二 | 亚洲网红精品大秀在线观看 | 国产成人一区二区三区在线视频 | 在线免费一级片 | 一本毛片| 色视频在线观看视频 | 国产美女一区二区三区 | 黄色在线观看国产 | 香蕉视频在线看 | 91久久精品国产免费一区 | 日本最黄视频 | mm在线视频免费看 | 国产精品亚洲精品日韩动图 | 在线免费观看色视频 | 欧美剧场成人精品午夜 | 杨幂国产精品福利在线观看 | 91久久精品 | 91短视频在线观看免费 | 国产精品400部自产在线观看 | 性色生活片 | 亚洲 欧美 日韩在线一区 | 国产精品一区二区三区四区五区 | 最近更新中文字幕第一页 | 日本一级毛片免费完整视频2020 | 高清精品一区二区三区一区 | 五月天丁香婷婷网 | 91欧美一区二区三区综合在线 | 国产成人免费高清视频 | 日韩国产欧美一区二区三区在线 | 婷婷色亚洲 |