countdownlatch介紹
countdownlatch是乙個同步輔助類,在完成一組正在其他執行緒中執行的操作之前,它允許乙個或多個執行緒一直等待。在一些應用場合中,需要等待某個條件達到要求後才能做後面的事情;同時當執行緒都完成後也會觸發事件,以便進行後面的操作。 這個時候就可以使用countdownlatch。
本文主要介紹countdownlatch的乙個具體使用——字串敏感字過濾。字串敏感字過濾是乙個常用的功能點,這裡使用的敏感字過濾方法主要參考 [url=敏感詞過濾演算法實現[/url]這邊部落格。而使用countdownlatch的主要目的是為了提高敏感字過濾的效率。
static class worker extends thread
public void run() catch (exception e) finally
}private string dowork()
}
我們可以看到:
1、countdownlatch初始化的count為字串按照每1024個位元組擷取的陣列數量 latchcount
2、建立 latchcount 個執行緒,並執行
3、只有當所有執行緒執行完成,並呼叫 latch.countdown()後 latch.await()會被喚起,繼續執行後續的**。
測試**
測試結果:
--------未使用多執行緒-----------
過濾字串長度:31878
-------使用多執行緒--------------
過濾字串長度:31878
java多執行緒之CountDownLatch
countdownlatch是乙個同步工具類,用來協調多個執行緒之 間的同步。其能夠使 乙個執行緒在等待另外一些執行緒完成各自工作之後,再繼續執行。使用乙個計數器進行實現。計數器初始值為執行緒的數量。當每乙個執行緒完成自己任務後,計數器的值就會減一。當計數器的值為0時,表示所有的執行緒都已經完成了任...
多執行緒之倒計時器CountDownLatch及原理
這個工具通常用來控制線程等待,它可以讓某乙個執行緒等待直到倒計時結束再開始執行。countdownlatch是 共享模式 的。構造方法 countdownlatch int count count就是計數的次數 主要方法 void await 讓當前執行緒等待,直到倒計時結束 long getcou...
多執行緒 多執行緒原理
我們首先要知道什麼是多執行緒,說白了就是多個執行緒,執行緒是什麼呢,其實就是程序執行的途徑,那麼說道這裡我們又引入了乙個新的名字,就是程序,那麼我們來看看什麼是程序,其實我們自己也能看到,啟動電腦的任務管理器,我們就可以看到程序選項,裡面是我們電腦所有的程序,我們會發現有很多的程序.簡單地說就是程序...