[英]Java Multihreading Synchronization with Lock
在Java中,我们可以通过使用Lock接口和ReentrantLock
类来实现公平性,如下所示:
Lock lock=new ReentrantLock(true);
一旦我们实现公平性,那么在多个线程等待访问锁的情况下,等待大多数持续时间的那个被授予对锁的访问权。
任何人都可以提供JVM
如何跟踪线程等待很长时间的细节,即JVM
如何实现公平性。
详细信息在源代码中。 Googling可以找到源代码:
该代码得到了极好的评论。
简短的回答是每个锁都有一个等待线程的队列,它被实现为一个链表。
在“公平”情况下,在队列非空时尝试获取锁的线程被添加到队列的末尾。
在“不公平”的情况下,如果锁当前是空闲的,则线程可能会插入。 这样可以提供更好的性能,因为您不需要执行需要系统调用的线程上下文切换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.