---------------------- android培訓、java培訓、期待與您交流!
----------------------
一、Semaphore號誌
查閱API文檔,Semaphore繼承自Object類,實現了Serializable介面。
Semaphore的特點是:能夠控制同時訪問資源的線程的個數,並且形成並非訪問資源。
Semaphore的主要操作:該類有兩個構造方法,Semaphore(int permits) 和Semaphore(int permits, boolean fair) ,前者參數permits表示可同時訪問資源的最大線程數,後者多了一個布爾型參數fair,當值為true時,保證多個線程能夠實現先進先出,其他的主要方法是acquire()和release()方法,分別用來為線程分配許可權和釋放許可權。
二、CyclicBarrier
CyclicBarrier繼承自Object類。
構造方法有兩種,CyclicBarrier(int parties) 和CyclicBarrier(int parties, Runnable barrierAction) ,其中的參數parties表示所需等待的線程數,barrierAction表示,當線程完成等待後,需要進行的操作。
CyclicBarrier主要操作有await(),當執行該方法時候,每個線程執行到await()語句時,會等待,直到所等待的線程數量與建構函式中的parties參數相等時候,會繼續向下執行。
三、CountDownLatch
CyclicBarrier繼承自Object類。
該類只有一種構造方法,CountDownLatch(int count) ,其中參數count表示倒計時的次數。
主要的操作有await()和CountDown(),前者表示線程在等待,而由後者倒數,當倒數了count次後,等待的線程開始繼續向下執行。
四、Exchanger
繼承自Object類。
該類構造方法只有一種,Exchanger() 。
主要操作有exchange(V x) 和exchange(V x, long timeout, TimeUnit unit) ,前者是除非線程被打斷,否則等待另外一個線程進入交換點交換資料;後則,則加上了時間的限制,若超出時間限制,便不再等待。
---------------------- android培訓、java培訓、期待與您交流!
----------------------
詳細請查看:http://edu.csdn.net/heima