05-结果分析
结果分析
在本节中,由于 ReentrantLock 类中包含了许多受保护的数据,因此我们将利用 MyLock 类继承 ReentrantLock ,以获得父类中受保护的信息。 MyLock 类实现的方法如下所示。
getOwnerName():在Lock对象的作用下,一次只能有一个线程可以访问临界区。因此在锁对象中保存了当前执行临界区线程的相关信息,通过ReentrantLock上受保护的getOwner()方法获得当前线程的信息。getThreads():当前临界区已经有线程正在执行,试图进入临界区的其他线程将在执行临界区代码之前进入休眠状态。通过ReentrantLock类的getQueued-Threads()方法,可以获得等待临界区的线程列表。
除此之外,在 ReentrantLock 类中还包含了其他方法的实现。
hasQueuedThreads():该方法返回一个布尔值,它指示当前是否有线程正在等待获取调用ReentrantLock。getQueueLength():该方法返回正在等待ReentrantLock锁的线程数量。isLocked():该方法返回一个布尔值,它指示当前ReentrantLock锁是否已经由线程拥有。isFair():该方法返回一个布尔值,它指示当前ReentrantLock锁是否已激活公平模式。