方法acquireUninterruptibly()的作用是使等待进入acquire()方法的线程,不允许被中断,先来看一个中断的实验:
代码中出现的ThreadA,ThreadB等类代码之前章节有截图,这个不在描述。
可以看到:
线程B成功被中断,那么不能被中断是什么效果呢?
上面的Server稍微改动:
再次运行可以看到:
该方法的重写方法:acquireUninterruptibly(int permits)方法作用是在等待许可的情况下不允许被中断,如果成功获得锁,则取得指定的permits许可个数。
网友评论