Runnable

Runnable

步驟:

1.定義實現(xiàn)Runnable接口

2.覆蓋Runnable接口的方法,將線程要運行的代碼方法方法放到run方發(fā)中矾瑰。

3.通過Thread類建立線程對象。

4.將Runnable接口的子類對象作為實際參數(shù)傳遞給Thread類的構(gòu)造函數(shù)

為什么要講Runnable接口的子類對象傳遞給Thread的構(gòu)造方法隘擎。因為自定義的方法所屬的對象是Runnable接口的子類對象殴穴。

5.調(diào)用Thread類的Start方法開啟線程并調(diào)用Runnable接口子類方法run方法。

線程安全的共享代碼塊問題

目的:程序是否存在安全問題货葬,如果有采幌,如何解決:

如何找問題?

1.明確哪些代碼是多線程運行代碼

2.明確共享數(shù)據(jù)

3.明確多線程運行代碼中哪些語句是操作共享數(shù)據(jù)的

class Bank{

private int sum;

public void add(int n){//自定義的方法所屬的對象是Runnable接口的子類對象震桶。

sum+=n;

System.out.println("sum="+sum);

}

}

class Cus implements Runnable{ ? //1.定義實現(xiàn)Runnable接口

private Bank bank = new Bank();

@Override

public void run() {//2.覆蓋Runnable接口的方法休傍,將線程要運行的代碼方法方法放到run方發(fā)中

synchronized (bank) {

for(int x = 0;x<3;x++){

bank.add(100);

}

}

}

}

public class Demo1 {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Cus cus = new Cus();

//3.通過Thread類建立線程對象。

//4.將Runnable接口的子類對象作為實際參數(shù)傳遞給Thread類的構(gòu)造函數(shù)

Thread t1 = new Thread(cus);

Thread t2 = new Thread(cus);

//5.調(diào)用Thread類的Start方法開啟線程并調(diào)用Runnable接口子類方法run方法蹲姐。

t1.start();

t2.start();

}

}


將synchronized加在方法中

class Bank{

private int sum;

public synchronized void add(int n) throws InterruptedException{

sum+=n;

Thread.sleep(1000);

System.out.println("sum="+sum);

}

}

class Cus implements Runnable{

private Bank bank = new Bank();

public void run(){

for(int i=0;i<3;i++){

try {

bank.add(100);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

public class Demo2{

public static void main(String []args){

Cus cus = new Cus();

Thread t1 = new Thread(cus);

Thread t2 =new Thread(cus);

t1.start();

t2.start();

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末磨取,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子柴墩,更是在濱河造成了極大的恐慌忙厌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件江咳,死亡現(xiàn)場離奇詭異逢净,居然都是意外死亡,警方通過查閱死者的電腦和手機歼指,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門爹土,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人东臀,你說我怎么就攤上這事着饥。” “怎么了惰赋?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵宰掉,是天一觀的道長呵哨。 經(jīng)常有香客問我,道長轨奄,這世上最難降的妖魔是什么孟害? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮挪拟,結(jié)果婚禮上挨务,老公的妹妹穿的比我還像新娘。我一直安慰自己玉组,他們只是感情好谎柄,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惯雳,像睡著了一般朝巫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上石景,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天劈猿,我揣著相機與錄音,去河邊找鬼潮孽。 笑死揪荣,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的往史。 我是一名探鬼主播仗颈,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼怠堪!你這毒婦竟也來了揽乱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤粟矿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后损拢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陌粹,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年福压,在試婚紗的時候發(fā)現(xiàn)自己被綠了掏秩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡荆姆,死狀恐怖蒙幻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情胆筒,我是刑警寧澤邮破,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布诈豌,位于F島的核電站,受9級特大地震影響抒和,放射性物質(zhì)發(fā)生泄漏矫渔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一摧莽、第九天 我趴在偏房一處隱蔽的房頂上張望庙洼。 院中可真熱鬧,春花似錦镊辕、人聲如沸油够。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽石咬。三九已至,卻和暖如春受裹,著一層夾襖步出監(jiān)牢的瞬間碌补,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工棉饶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厦章,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓照藻,卻偏偏與公主長得像袜啃,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子幸缕,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法群发,類相關(guān)的語法,內(nèi)部類的語法发乔,繼承相關(guān)的語法熟妓,異常的語法,線程的語...
    子非魚_t_閱讀 31,625評論 18 399
  • 關(guān)于選擇繼承Thread還是實現(xiàn)Runnable接口栏尚? 其實Thread也是實現(xiàn)Runnable接口的: 復(fù)制代碼...
    簡單應(yīng)用閱讀 492評論 1 1
  • 在java中可有兩種方式實現(xiàn)多線程起愈,一種是繼承Thread類,一種是實現(xiàn)Runnable接口译仗;Thread類是在j...
    簡單Liml閱讀 534評論 0 1
  • Java中Runnable和Thread的區(qū)別分析 在java中可有兩種方式實現(xiàn)多線程抬虽,一種是繼承Thread類,...
    簡單應(yīng)用閱讀 924評論 0 6
  • 動畫電影簡介(摘自百度) 《超級大壞蛋》是一部由湯姆·麥克格雷斯導(dǎo)演纵菌, 威爾·法瑞爾阐污、蒂娜·菲等主演,于2010年...
    巧23閱讀 4,752評論 0 0