---------------------- 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