Collections.SynchronizedMap(IDictionary) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает синхронизированную (потокобезопасную) карту, поддерживаемую указанной картой.
[Android.Runtime.Register("synchronizedMap", "(Ljava/util/Map;)Ljava/util/Map;", "")]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public static System.Collections.IDictionary SynchronizedMap(System.Collections.IDictionary m);
[<Android.Runtime.Register("synchronizedMap", "(Ljava/util/Map;)Ljava/util/Map;", "")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
static member SynchronizedMap : System.Collections.IDictionary -> System.Collections.IDictionary
Параметры
карта, "упаковаемая" в синхронизированную карту.
Возвращаемое значение
синхронизированное представление указанной карты.
- Атрибуты
Комментарии
Возвращает синхронизированную (потокобезопасную) карту, поддерживаемую указанной картой. Чтобы гарантировать последовательный доступ, важно, чтобы <обеспечить надежный и< надежный>> доступ к резервной карте осуществляется с помощью возвращаемой карты.
Очень важно, чтобы пользователь вручную синхронизировать на возвращаемой карте при обходе любого из представлений коллекции через Iterator
Spliterator
илиStream
:
Map m = Collections.synchronizedMap(new HashMap());
...
Set s = m.keySet(); // Needn't be in synchronized block
...
synchronized (m) { // Synchronizing on m, not s!
Iterator i = s.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
Неспособность следовать этому совету может привести к недетерминированному поведению.
Возвращаемая карта будет сериализуемой, если указанная карта сериализуема.
Документация по Java для java.util.Collections.synchronizedMap(java.util.Map<K, V>)
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.