通俗易懂学习java并发工具类-Semaphore,Exchanger
Semaphore可以理解为信号量,用于控制资源能够被并发访问的线程数量,以保证多个线程能够合理的使用特定资源。Semaphore就相当于一个许可证,线程需要先通过acquire方法获取该许可证,该线程才能继续往下执行,否则只能在该方法出阻塞等待。假如有多个线程读取数据后,需要将数据保存在数据库中,而可用的最大数据库连接只有10个,这时候就需要使用Semaphore来控制能够并发访问到数据库连接资源的线程个数最多只有10个。在限制资源使用的应用场景下,Semaphore是特别合适的。一个例子下面用一个简单的例子来说明Semaphore的具体使用。对其他线程的执行过程,也是同样的道理。从这个例子就可以看出,Exchanger是一个用于线程间协作的工具类,用于两个线程间能够交换。
下载地址
用户评论