AbstractQueueSynchronizer 独占式超时获取同步状态

  • 原文链接 https://www.zhoutao123.com/page/book/java/category/ui8wdw

  • 更多文章欢迎访问 https://www.zhoutao123.com


通过调用同步器的 public final boolean tryAcquireNanos(int arg, long nanosTimeout) 放,可以实现超时获取同步状态的编程范式模型,即在指定时间内获取到同步状态,超过一定时间返回false,获取同步状态成功则返回true,这是在JDK1.5 之前使用Synchronized关键字所不具备的特性。


在JDK1.5 之前使用Synchronized关键字获取不到同步状态时候会一直被阻塞在Synchronized之外,即使对该线程进行了中断操作,也仅仅是该线程的中断标记被修改,但仍然会被阻塞在Synchronized之外,继续等待获取到同步状态。但值得庆幸的是在AbstractQueueSynchronizer 中提供了 acquireInterruptibly(int arg) 方法中断处于等待状态的线程并抛出InterruptiedException。

  • 原文链接 https://www.zhoutao123.com/page/book/java/category/ui8wdw

你可能感兴趣的:(Java,基础知识进阶)