Runnable介面的併發問題 以及龜兔賽跑案例

2021-10-21 12:01:26 字數 1431 閱讀 8141

//多個執行緒同時操作同乙個物件

// 買火車票的例子

//發現問題:多個執行緒操作同乙個資源的情況下,執行緒不安全,資料紊亂。

public

class

testthread04

implements

runnable

trycatch

(interruptedexception e)

system.out.

println

(thread.

currentthread()

.getname()

+"拿到了第"

+ ticketnum--

+"張票");

}}public

static

void

main

(string[

] args)

}//小紅拿到了第9張票

//黃牛拿到了第10張票

//小明拿到了第8張票

//小紅拿到了第7張票

//黃牛拿到了第7張票

//小明拿到了第6張票

//小明拿到了第5張票

//黃牛拿到了第3張票

//小紅拿到了第4張票

//小明拿到了第0張票

//黃牛拿到了第2張票

//小紅拿到了第1張票

首先來個賽道距離,然後要離終點越來越近

判斷比賽是否結束

列印出勝利者

龜兔賽跑是否結束

故事中是烏龜贏的,兔子需要睡覺,所以要模擬兔子睡覺

終於,烏龜贏得比賽

public

class

race

implements

runnable

//制裁兔子的方法

if(thread.

currentthread()

.getname()

=="兔子"

&& i %

50==0)

catch

(interruptedexception e)

} system.out.

println

(thread.

currentthread()

.getname()

+"已經跑了"

+ i +

"步");}

}private

boolean

raceover

(int steps)

if(steps >=

100)

return

false;}

public

static

void

main

(string[

] args)

}

解決併發問題

一.使用redis鎖 智慧型雲 工單系統 搶單 工單id鎖key public static final string cloud live gain order lock orderid cloud live gain order lock orderid component public cla...

Connection併發問題

connection lock getconnection lock.setautocommit false lock.createstatement execute select from zhaojianyong for update final connection connection ge...

hive併發問題

hive 併發模型 使用案例 併發支援 是資料庫的必須,而且他們的使用案例很好懂。至少,我們要盡可能支援併發讀和寫。新增幾個發現當前已經鎖定的鎖,是有用的。這裡沒有乙個直接的需求新增乙個api顯式獲取鎖,所以,所有鎖都是隱式獲取的。hive定義一下模式的鎖 注意不需要意向鎖 共享 s 排他 x 見名...