訊號量用來控制能夠同時訪問的此時:
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...