В Java мы можем реализуем справедливость с помощью блокировки интерфейса и ReentrantLock
класса следующей образом:Java Multihreading Синхронизация с замком
Lock lock=new ReentrantLock(true);
После того, как мы реализуем справедливость, то в случае нескольких потоков, ожидающий доступ к блокировкам, один которому ожидает большая продолжительность, предоставляется доступ к блокировке.
Может ли кто-нибудь предоставить подробную информацию о том, как JVM
поддерживать следы потоков в ожидании долгого времени, а также как справедливость реализуется JVM
.
* Прекрасный замок - это тот, где потоки приобретают замок в том же порядке, в котором они его запрашивали * - не будет ли 'ReentrantLock' просто использовать очередь? Я посмотрел на источник, и у «ReentrantLock» есть 2 статических класса, которые расширяют «AbstractQueuedSynchronizer», а класс для другого - для несправедливого. –
@JonnyHenly Как вы говорите, он использует очередь, как указывает источник. Никакой магии не происходит. +1 –
@PeterLawrey Woohoo! Мне нравится быть неправым. –