用給定的計數 初始化 countdownlatch。由於呼叫了 countdown() 方法,所以在當前計數到達零之前,await 方法會一直受阻塞。之後,會釋放所有等待的執行緒,await 的所有後續呼叫都將立即返回。這種現象只出現一次——計數無法被重置。方法
意義void await()
使當前執行緒在鎖存器倒計數至零之前一直等待,除非執行緒被中斷。
boolean await(long timeout, timeunit unit)
使當前執行緒在鎖存器倒計數至零之前一直等待,除非執行緒被中斷或超出了指定的等待時間。
void countdown()
遞減鎖存器的計數,如果計數到達零,則釋放所有等待的執行緒。
long getcount()
返回當前計數。
string tostring()
返回標識此鎖存器及其狀態的字串。
重點是countdown(),執行之後,計數器減一,而await會一直等待,直到計數器為0,需要注意的是這個計數器不可以被重置。應用:
測試atomicinteger和synchronized的效率問題
public
class
testatomicinteger
latch.await();//等待50個執行緒都執行完
system.out.println("sychronized style consume time:" + (system.nanotime()-start)/1000000.0);
latch = new countdownlatch(50);
start = system.nanotime();
for(int i = 0; i < 50 ; i ++)
latch.await();
system.out.println("cas style consume time:" + (system.nanotime()-start)/1000000.0);
}public
synchronized
static
intgetnextid()
public
static
intgetnextidwithatomic()
static class task implements runnable
public
void
run()else
}latch.countdown();//執行完乙個任務計數器減一}}
}
計數器 智慧型計數器簡介
計數器主要是應用於電子科技領域,計數器是一種運用得比較多的時序邏輯電路。計數器可以對數字進行運算,它是一種沒有辦法顯示計算結果的顯示器。隨著電子科技的不斷發展,現在的計數器也實現了智慧型功能。智慧型計數器的出現幫助我們實現了很多高強度生產問題 複雜的技術問題,並且節約了生產成本和人力成本。智慧型計數...
計數器 通用計數器的應用價值
隨著科學技術發展,一些應用系統,如大型通訊系統,電力系統,特別是高速運動目標的跟蹤定位系統,對時間間隔的測量精度提出了越來越高的要求,同時我國對時間間隔計數器的應用掌控性,更傾向於依賴於國產裝置實現數字式頻率計的研發。雖然通用計數器測量週期誤差不可能從根本上消除,但通過對轉換誤差 量化誤差及各類誤差...
計數器設計
最近看到一篇文章說要實現乙個計數器的功能,於是通過思索,設計了乙個靈活可用性高的物件計數器。裡面閃爍著 很多的火花。template class object counter object counter private static int m count template int object ...