Java多執行緒系列(二十二)Semaphore使用

2021-09-22 16:36:06 字數 827 閱讀 8987

訊號量用來控制能夠同時訪問的此時:

semaphore semphore = new semaphore(3);

thread thread1 = new thread(new runnable() catch (interruptedexception e2)

try catch (interruptedexception e1)

system.out.println("thread1 一次迴圈開始");

try catch (exception e)

system.out.println("thread1 一次迴圈結束");}}

});thread thread2 = new thread(new runnable() catch (interruptedexception e2)

try catch (interruptedexception e1)

system.out.println("thread2 一次迴圈開始");

try catch (exception e)

system.out.println("thread2 一次迴圈結束");}}

});thread1.start();

thread2.start();

列印結果如下:

thread1 一次迴圈開始

thread1 一次迴圈結束

thread2 一次迴圈開始

thread2 一次迴圈結束

thread1 一次迴圈開始

thread1 一次迴圈結束

可以看到,在不釋放訊號量的情況下,最多進入三次。

Hadoop運維記錄系列 二十二

今天抽空解決了乙個hadoop集群的乙個非常有意思的故障,之所有有意思,是這個故障既可以稱之為故障,又不算是故障,說不算問題吧,作業跑的特慢,說算問題吧,作業不但都能跑出來,還沒有任何報錯,所以還比較難查。故障表象是一幫人嚷嚷作業太慢了,跑不動,但是基本上嚷嚷一會就能跑出來,但相對於原來還是慢。我看...

狀態模式 java設計模式(二十二)

共享狀態 優缺點和適用範圍 jdk中的應用 狀態模式 state pattern 允許乙個物件在內部狀態改變時改變行為,看起來似乎修改了類。狀態模式結構。狀態轉換可以由環境類統一負責。新增具體狀態需要修改環境類。public void changestate else if value 1 publ...

PHP設計模式系列(二十二) 直譯器模式

給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。直譯器模式 abstractexpression 抽象表示式 abstract class abstractexpression terminalexpression 終結符表示式 class termi...