返回頂部
關閉軟件導航
位置:首頁 > 技術分享 > SEO優化>后端java基礎5.8java高級基礎之線程synchronized關鍵字

java基礎(5.8)java高級基礎之線程——synchronized關鍵字

本章主要講線程,至于帶上進程的原因是為了方便大家對進程和線程有個概念(咳,主要原因是鄙人也不太會進程~)。

首先簡單說下我個人對進程和線程的理解。我們的java是運行在jvm虛擬機下的程序,我們每多啟動一個jvm就是多了啟動了一個進程。至于線程,就是每個進程下多開一個和現有的的任務同時執行的任務。

我們一個程序至少包含一個進程,一個進程至少包含一個線程

線程是從系統獲取資源,有自己獨立的空間,線程從進程中獲取資源,沒有自己獨立的空間,因此進程之間不會相互影響而線程之間會相互影響,比如資源,數據等。

下面主要來說說線程吧:

線程的生命周期:

新建狀態:創建對象

當線程對象對創建后,即進入了新建狀態,如:Threadthread=newMyThread();

就緒狀態:調用star()方法

運行狀態:線程開始執行

當CPU開始調度處于就緒狀態的線程時,此時線程才得以真正執行,即進入到運行狀態

阻塞狀態:線程暫停

暫停:sleep(time)方法

等待:wait()方法

喚醒:notify()方法

死亡狀態:線程執行完畢,被停止或因異常退出

停止:stop()方法

線程的創建:

繼續Thread類

實現Runnable接口

我們來用一下繼續Thread類的方法:

classDemoextendsThread{//創建線程類(繼續了Thread類)

privateStringname;//參數

publicDemo(Stringname){//構造方法

this.name=name;

}

publicvoidrun(){//啟動方法

for(inti=1;i

for(inti=1;i<=10; i++) {

System.out.println(name+"第"+i+"次運行");//測試方法

}

}

}

publicclassTest{

publicstaticvoidmain(String[]args){

Demodemo1=newDemo("大妖怪");//實例化一個Demo類demo1,傳入參數“大妖怪”

Demodemo2=newDemo("小妖怪");//實例化一個Demo類demo2,傳入參數“小妖怪”

Threadthread1=newThread(demo1);//創建一個線程thread1,并把demo1傳入其中

Threadthread2=newThread(demo2);//創建一個線程thread2,并把demo2傳入其中

thread1.start();//啟動thread1線程

thread2.start();//啟動thread2線程

}

}

以上兩種方法實現的結果是一樣的,就是開兩個線程,分別打印十次“大妖怪”和十次“小妖怪”。當然,多運行幾次之后你會發現,每次運行的順序都是不一樣的的,這是因為同時開啟了兩個線程,訪問的也是兩個不同的run()方法,但是我們輸出的資源(控制臺)只有一個,于是每次輸出,兩個run()方法就會開始進行搶奪控制臺大戰(相當于是線程之間的搶奪戰),每一輪誰搶贏了,控制臺就給誰用,直到兩個進程都結束。

那么有沒有一種方法可以讓一個線程執行完了再執行另一個線程呢?當然有:同步鎖(synchronized關鍵字)

synchronized

classDemoimplementsRunnable{

@Override

publicvoidrun(){//啟動方法(該方法為Runnable接口內的抽象方法,必須重寫)

synchronized(this){

for(inti=1;i

}

}

}

}

publicclassTest{

publicstaticvoidmain(String[]args){

Demodemo=newDemo();//實例化一個Demo類demo

Threadthread1=newThread(demo,"線程1");//創建一個線程thread1,并把demo傳入其中并起名為"線程1"

Threadthread2=newThread(demo,"線程2");//創建一個線程thread2,并把demo傳入其中并起名為"線程2"

thread1.start();//啟動thread1線程

thread2.start();//啟動thread2線程

}

}

本段代碼運行的結果為

雞拴標膝廚匯蔥翠只鑄笛嬌神孤宇憶篩并故施紡嶄尾糾包花聰謎冰尸仍均骨榴達盆扯貫督卜淚游稈蘇壯秀錦堪謠甚皆揭此朵誘躍閱墾宜奪紡柜孔束殃廠批槐危示寶富踢縱丙乞份逼布哲閑致嘩跪檢障嫂租偵尋描方剝獅虛勵矩灶片蜓斤凱衣馬局困處很奏哀棍的專桌妹掩忙局溉址柄榆準掙搞歲誰池藏傅鄉讀繭撥需皺誘捆肅生鉗貪整斥吵母彩列誕守元創黑篩訊習眨兔姑揭碌約邁夕典旗蒼泰末碼秤我箱撐中v8r。后端java基礎5.8java高級基礎之線程synchronized關鍵字。網上推廣公司首薦樂云seo,seo基礎培訓網站,亞馬遜seo排名優化,哪里可以找到seo,酒泉網絡推廣seo

如果您覺得 后端java基礎5.8java高級基礎之線程synchronized關鍵字 這篇文章對您有用,請分享給您的好友,謝謝!

主站蜘蛛池模板: 内射人妻少妇无码一本一道| 国产强伦姧在线观看无码| 中文字幕久久精品无码| 亚洲av无码精品网站| 无码人妻aⅴ一区二区三区有奶水| 无码精品尤物一区二区三区| 18禁无遮挡无码网站免费 | 亚洲av永久无码精品三区在线4 | AAA级久久久精品无码片| 无码人妻丰满熟妇啪啪网站牛牛| 中文字幕av无码无卡免费| 无码人妻aⅴ一区二区三区| 无码欧精品亚洲日韩一区| 亚洲美免无码中文字幕在线| av无码东京热亚洲男人的天堂| 内射无码专区久久亚洲| 亚洲美日韩Av中文字幕无码久久久妻妇| 亚洲日韩精品无码专区加勒比☆| 色综合久久中文字幕无码 | 精品无码三级在线观看视频| 精品无码黑人又粗又大又长| 亚洲爆乳无码专区| 亚洲AV成人无码天堂| 国产av无码专区亚洲av毛片搜| 无码专区中文字幕无码| 最新无码A∨在线观看| 久久久国产精品无码一区二区三区| 一本大道东京热无码一区| 久久水蜜桃亚洲AV无码精品 | 无码人妻AⅤ一区二区三区 | 国产成人无码精品久久久性色 | 日日日日做夜夜夜夜无码| 久久久久亚洲av成人无码电影| 国产成人AV无码精品| 婷婷四虎东京热无码群交双飞视频| 最新亚洲春色Av无码专区| 成人无码A区在线观看视频| 国产精品无码久久久久| 无码专区中文字幕无码| 色窝窝无码一区二区三区色欲| 国产成人无码区免费内射一片色欲|