預處理執行緒問題解決方案

2021-09-30 14:44:07 字數 2237 閱讀 8240

現有3個執行緒thread1, thread2, thread3。這3個執行緒是併發執行的,當著3個執行緒都執行完成以後,需要執行乙個finish()事件。

1

/**定義乙個靜態標記 **/2

private

static

byte nbtemp = 0;34

private

void

aa()

12});

13//

執行緒214 thread thread2 = new thread(new

runnable()

20});

21//

執行緒322 thread thread3 = new thread(new

runnable()

28});

2930

thread1.start();

31thread2.start();

32thread3.start();33}

3435

/**注意:要新增關鍵字「synchronized」,否則會先同時操作bb()方法

*/36

private

synchronized

void

bb()

41 }

1

/**定義乙個靜態標記 **/2

private

static

byte nbtemp = 0;

3/**

開始時候的時間戳 **/4

private

long

nlstarttime;

5/**

最大時間戳 **/6

private

long

nlmaxtime;

7/**

finish()方法標記,防止多次執行 **/8

private

boolean

isfirst;

9/**

最小等待時間 *

*/10

private

short nsmintime = 3000;

11/**

最大等待時間 *

*/12

private

short nsmaxtime = 6000;

1314

private

void

aa()

22});

23//

執行緒224 thread thread2 = new thread(new

runnable()

30});

31//

執行緒332 thread thread3 = new thread(new

runnable()

38});

3940

thread threadtimemanager = new thread(new

runnable() catch

(interruptedexception e) {}

47nlstarttime += 1000;

48if(nlcurrenttime

53

}54

}55

});56

57//

記錄當前時間

58nlstarttime =system.currenttimemillis();

59nlcurrenttime = nlstarttime - nsmaxtime + 1; //

最大間隔6s;

60isfirst = true;61

62thread1.start();

63thread2.start();

64thread3.start();

65threadtimemanager.start();66}

6768

/**主要要新增關鍵字「synchronized」,否則會先同時操作bb()方法

*/69

private

synchronized

void

bb() catch

(interruptedexception e) {}

78

}79 finish(); //

條件達成,執行finish();80}

81 }

執行緒安全問題解決方案

實現賣票案例出現了執行緒安全問題,賣出了不存在和重複的票 解決執行緒安全的第一種方法 使用同步 塊 格式 synchronized 鎖物件 注意 1.同步 塊中的鎖物件,可以使用任意物件 2.但是必須保證多個執行緒使用的鎖物件是同乙個 3.鎖物件作用 把同步 塊鎖住,只讓乙個執行緒在同步 塊中執行 ...

Jar Hell 問題解決方案

最近看到溫紹錦的jvm基礎,裡面看到這個jar hell問題的解決方法,之前遇到過一次,是乙個資源檔案,當時覺得挺麻煩,不知道還有這個方法,很棒,特地整理了下,記錄到這裡來,這個部落格開了好長時間了,一直以來也懶得寫東西,以後會堅持更新些。classloader classloader thread...

top K問題解決方案

1.使用最大最小堆。求最大的數用最小堆,求最小的數用最大堆。2.quick select演算法。使用類似快排的思路,根據pivot劃分陣列。3.使用排序方法,排序後再尋找top k元素。4.使用選擇排序的思想,對前k個元素部分排序。5.將1000 個數分成m組,每組尋找top k個數,得到m k個數...