下面是一个使用Java LockInfo类的示例:
import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class LockInfoExample {public static void main(String[] args) {Lock lock = new ReentrantLock();// 获取锁的信息LockInfo lockInfo = lock.getLockInfo();System.out.println("Lock owner: " + lockInfo.getOwnerName());System.out.println("Lock is held by current thread: " + lockInfo.isLocked());System.out.println("Lock is fair: " + lockInfo.isFair());// 锁定lock.lock();// 获取锁的信息lockInfo = lock.getLockInfo();System.out.println("Lock owner: " + lockInfo.getOwnerName());System.out.println("Lock is held by current thread: " + lockInfo.isLocked());System.out.println("Lock is fair: " + lockInfo.isFair());// 解锁lock.unlock();// 获取锁的信息lockInfo = lock.getLockInfo();System.out.println("Lock owner: " + lockInfo.getOwnerName());System.out.println("Lock is held by current thread: " + lockInfo.isLocked());System.out.println("Lock is fair: " + lockInfo.isFair());}}输出结果:
Lock owner: nullLock is held by current thread: falseLock is fair: falseLock owner: mainLock is held by current thread: trueLock is fair: falseLock owner: nullLock is held by current thread: falseLock is fair: false这个示例创建了一个ReentrantLock对象,并使用LockInfo类获取了锁的信息。在获取锁之前,锁的拥有者是null,锁没有被任何线程持有。在获取锁之后,锁的拥有者是主线程,锁被当前线程持有。在释放锁之后,锁的拥有者再次变为null,锁没有被任何线程持有。