(4)Semaphore-方法acquireUninterruptibly()的使用

方法acquireUninterruptibly()的作用是使等待进入acquire()方法的线程,不允许被中断,先来看一个中断的实验:

代码中出现的ThreadA,ThreadB等类代码之前章节有截图,这个不在描述。





可以看到:

线程B成功被中断,那么不能被中断是什么效果呢?

上面的Server稍微改动:


再次运行可以看到:


该方法的重写方法:acquireUninterruptibly(int permits)方法作用是在等待许可的情况下不允许被中断,如果成功获得锁,则取得指定的permits许可个数。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 创文章,转载请务必将下面这段话置于文章开头处。本文转发自Jason's Blog,原文链接http://www.j...
    郭俊Jason阅读 4,668评论 1 19
  • 下面是我自己收集整理的Java线程相关的面试题,可以用它来好好准备面试。 参考文档:-《Java核心技术 卷一》-...
    阿呆变Geek阅读 15,024评论 14 507
  • 第一章:Java程序设计概述 Java和C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能...
    loneyzhou阅读 5,068评论 1 7
  • 学习注安资料,考证 学英语(Dyned&趣配音等)和娃一起 学习一种乐器 学习游泳 学习手机摄影技巧
    灸灸微笑阅读 1,063评论 0 0
  • 十年前,在高中的语文课上,老师问你最大的梦想是什么。你笑着说想要和海子一样,自己有一所房子,面朝大海,春暖花开。 ...
    馨雪清菡阅读 4,377评论 15 14

友情链接更多精彩内容