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