Existe-t-il BlockingMap en tant que BlockingQueue en java?


J'aimerais avoir une structure de données BlockingMap très similaire à BlockingQueue. La méthode take de BlockingQueue attendra là jusqu'à ce que l'élément soit disponible. J'aimerais que la méthode get de BlockingMap y attende jusqu'à ce que la clé correspondante soit disponible? Est ce type de structure de données que je peux utiliser ?

Author: zjffdu, 2014-01-06

2 answers

, j'ai simplement utilisé BlockingQueue<Map.Entry<K,V>> dans le passé. Mais récemment, je suis tombé sur cette Carte de blocage pour Java . Ne l'ai pas utilisé moi-même.

 10
Author: Chthonic Project, 2014-01-06 08:43:33

, je l'espère, ce est ce que vous voulez.

public class BlockingHashMap<K,V>
extends java.lang.Object
implements BlockingMap<K,V>

Obtenir

public V get(java.lang.Object key)

Renvoie la valeur à laquelle la clé spécifiée est mappée, ou null si cette carte ne contient aucun mappage pour la clé. Notez que null est utilisé comme marqueur spécial pour indiquer l'absence de la clé demandée

Spécifié par:

get in interface java.util.Map<K,V>

Spécifié par:

get in interface BlockingMap<K,V>

Paramètres:

key - the key whose associated value is to be returned

Retourne:

the value to which the specified key is mapped, or null if this map contains no mapping for the key

Jette:

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
 4
Author: Reuben, 2014-01-06 08:51:31