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