Semaphore - jdk1.5并发包
来源:互联网 发布:数据ev值是什么意思 编辑:程序博客网 时间:2024/05/07 16:46
Java中Semaphore是一个同步类,它维护了指定数量的权限。当前线程需要访问共享内存时需要获取权限,如果该权限被其它线程占有将会等待直到释放权限。这种同步策略可以用来实现生产者消费者问题以及应用在线程池、数据库连接池中。
Semaphore类初始化时指定权限数,它提供了两个主要的方法acquire()和release()用于获取和释放权限。acquire()方法阻塞至有可用的权限,使用Semaphore可以实现线程间的互斥。
Semaphore使用实例
import java.util.concurrent.Semaphore;public class SemaphoreTest{Semaphore binary = new Semaphore(1);public static void main(String[] args) {final SemaphoreTest test = new SemaphoreTest();new Thread(){public void run(){test.mutualExclusion();}}.start();new Thread(){public void run(){test.mutualExclusion();}}.start();}private void mutualExclusion(){try{binary.acquire();// mutual exclusive regionSystem.out.println(Thread.currentThread().getName() + " inside mutual exclusive region");Thread.sleep(1000);}catch (InterruptedException ie) {ie.printStackTrace();}finally{binary.release();System.out.println(Thread.currentThread().getName() + " outside of mutual exclusive region");}}}
output:
Thread-0 inside mutual exclusive region
Thread-0 outside of mutual exclusive region
Thread-1 inside mutual exclusive region
Thread-1 outside of mutual exclusive region
0 0
- Semaphore - jdk1.5并发包
- CyclicBarrier - jdk1.5并发包
- CountDownLatch - jdk1.5并发包
- java 并发包之Semaphore
- JDK1.5并发包学习笔记
- [Java并发包学习六]Semaphore介绍
- 并发包-Semaphore实现线程的通信
- [Java并发包学习六]Semaphore介绍
- [Java并发包学习六]Semaphore介绍
- Java并发包:Exchanger和Semaphore
- [Java并发包学习六]Semaphore介绍
- [Java并发包学习六]Semaphore介绍
- [Java并发包学习六]Semaphore介绍
- 【Java8源码分析】并发包-Semaphore
- Java并发包之Semaphore信号量
- java-jdk1.5新增的并发包内容
- Java线程总结(九):并发包------控制并发线程数Semaphore
- java高并发程序设计总结四:JDK并发包之信号量Semaphore
- PHP中文乱码分类及解决办法大全
- Oracle11g手动建库
- obj and mtl
- 如何通过github提升自己
- 枚举的最小生成树——hdu1598
- Semaphore - jdk1.5并发包
- topcoder赚钱的方法
- poj 2533 Longest Ordered Subsequence 深夜再来一波DP
- android:layout_gravity和android:gravity的使用区别。
- hdu 3681 Prison Break (BFS+状压)
- 循环-23. 找完数(20)
- ZOJ 2478 Encoding (字符串处理)
- Dialog再次理解了。
- acm2000