网站首页 > 精选教程 正文
Semaphore又称信号量,是操作系统中的一个概念,在Java并发编程中,信号量控制的是线程并发的数量。
信号量为多线程协作提供了更为强大的控制方法。广义上说,信号量是对锁对扩展,无论的内部锁synchronized还是重入锁ReentrantLock,一次都只运行一个线程访问一个资源,而信号量却可以指定多个线程同时访问某一个资源。信号量主要两个构造方法。
Semaphore(int num) Semaphore(int num, boolean how) //第二个参数可以指定是否公平
在构造信号量对象时,必须要指定信号量的准人数,即同时能申请多少个许可。当每个线程每次只能申请一个许可时,这就相当于指定了同时有多个线程可以访问某一个资源。信号量的主要逻辑方法有:
public void acquire() public void acquireUninterruptibly() public boolean tryAcquire() public boolean tryAcquire(long timeout, TimeUnit unit) public void release(int permits)
acquire()方法尝试获得一个准入的许可。若无法获得则线程等待。直到有线程释放到一个许可或者当前线程被中断。acquireUninterruptibly()方法和acquire() 方法类似。但是不会相应中断,tryAcquire() 尝试获得一个许可,如果成功就返回true,失败返回false,它不会进行等待,立即返回。release() 用于在线程访问资源结束后,释放一个许可,以使其他等待许可的线程可以进行资源访问。
文版权归是三僡然所有,转载请标明出处。欢迎转载,欢迎评论,欢迎分享。如果你有文章想分享可以联系我。
猜你喜欢
- 2024-11-06 信号量限流,高并发场景不得不说的秘密
- 2024-11-06 面试卡在多线程?那就分享几道Java多线程高频面试题,面试不用愁
- 2024-11-06 Java并发系列之Semaphore源码分析
- 2024-11-06 Java多线程与并发 java的并发,多线程,线程模型
- 2024-11-06 66.java并发编程之Semaphore和CountDownLatch使用
- 2024-11-06 Java基础笔试练习(十五) java基础知识试题
- 2024-11-06 72道Java线程面试题,这些面试官必问
- 2024-11-06 Java并发基础-锁详细分析(可重入锁、读写锁、信号量等)
- 2024-11-06 Java并发工具:CountDownLatch CyclicBarrier Semaphore快速掌握
- 2024-11-06 死磕 java同步系列之Semaphore源码解析
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)