Есть ли BlockingMap как BlockingQueue в java?
Я хотел бы иметь одну структуру данных BlockingMap, которая очень похожа на BlockingQueue. Метод take BlockingQueue будет ждать там, пока элемент не будет доступен. Я хотел бы, чтобы метод get BlockingMap ждал там, пока соответствующий ключ будет доступен? Доступна ли такая структура данных, которую я могу использовать ?
2 ответов
Я просто использовать BlockingQueue<Map.Entry<K,V>>
в прошлом. Но недавно я наткнулся на это блокировка карты для Java. Но сам я им не пользовался.
надеюсь этой это то, что вы хотите.
public class BlockingHashMap<K,V>
extends java.lang.Object
implements BlockingMap<K,V>
get
public V get(java.lang.Object key)
возвращает значение, к которому сопоставлен указанный ключ, или null, если эта карта не содержит сопоставления для ключа. Обратите внимание, что null используется как специальный маркер для указания отсутствия запрошенного ключа
указано:
get in interface java.util.Map<K,V>
указанного by:
get in interface BlockingMap<K,V>
параметры:
key - the key whose associated value is to be returned
возвращает:
the value to which the specified key is mapped, or null if this map contains no mapping for the key
Броски:
java.lang.ClassCastException - if the key is of an inappropriate type for this map
java.lang.NullPointerException - if the specified key is null and this map does not permit null keys (optional)
java.lang.IllegalStateException - if the map has been shut-down