Язык

Exchanger.Exchange Метод

Определение

Перегрузки

Имя. Описание
Exchange(Object)

Ожидает, пока другой поток не будет доставлен в эту точку обмена (если текущий поток не прерывается thread#прерывание), а затем передает заданный объект в него, получая его объект в обратном случае.

Exchange(Object, Int64, TimeUnit)

Ожидает прибытия другого потока в эту точку обмена (если текущий поток не прерывается thread#прерывание или указанное время ожидания истекает), а затем передает заданный объект в него, получая его объект в обратном случае.

Exchange(Object)

Ожидает, пока другой поток не будет доставлен в эту точку обмена (если текущий поток не прерывается thread#прерывание), а затем передает заданный объект в него, получая его объект в обратном случае.

[Android.Runtime.Register("exchange", "(Ljava/lang/Object;)Ljava/lang/Object;", "GetExchange_Ljava_lang_Object_Handler")]
public virtual Java.Lang.Object? Exchange(Java.Lang.Object? x);
[<Android.Runtime.Register("exchange", "(Ljava/lang/Object;)Ljava/lang/Object;", "GetExchange_Ljava_lang_Object_Handler")>]
abstract member Exchange : Java.Lang.Object -> Java.Lang.Object
override this.Exchange : Java.Lang.Object -> Java.Lang.Object

Параметры

x
Object

объект для обмена

Возвращаемое значение

объект, предоставленный другим потоком

Атрибуты

Комментарии

Ожидает, пока другой поток не будет доставлен в эту точку обмена (если текущий поток не прерывается thread#прерывание), а затем передает заданный объект в него, получая его объект в обратном случае.

Если другой поток уже ожидает в точке обмена, он возобновляется в целях планирования потоков и получает объект, переданный текущим потоком. Текущий поток возвращается немедленно, получая объект, переданный в обмен другим потоком.

Если ни один другой поток уже не ожидает обмена, текущий поток отключен для целей планирования потоков и находится в состоянии спячки до тех пор, пока не произойдет одно из двух вещей: <ul><li Некоторые другие потоки вступают в обмен; или <li>>Некоторые другие потоки#прерывания прерывает текущий поток. </ul>

Если текущий поток: <ul><li>имеет свой прерванный статус при входе в этот метод; или <li>является Thread#прерывание при ожидании обмена, /ul>InterruptedException затем возникает, <а состояние прерывания текущего потока очищается.

Документация по Java для java.util.concurrent.Exchanger.exchange(V).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к

Exchange(Object, Int64, TimeUnit)

Ожидает прибытия другого потока в эту точку обмена (если текущий поток не прерывается thread#прерывание или указанное время ожидания истекает), а затем передает заданный объект в него, получая его объект в обратном случае.

[Android.Runtime.Register("exchange", "(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;", "GetExchange_Ljava_lang_Object_JLjava_util_concurrent_TimeUnit_Handler")]
public virtual Java.Lang.Object? Exchange(Java.Lang.Object? x, long timeout, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("exchange", "(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;", "GetExchange_Ljava_lang_Object_JLjava_util_concurrent_TimeUnit_Handler")>]
abstract member Exchange : Java.Lang.Object * int64 * Java.Util.Concurrent.TimeUnit -> Java.Lang.Object
override this.Exchange : Java.Lang.Object * int64 * Java.Util.Concurrent.TimeUnit -> Java.Lang.Object

Параметры

x
Object

объект для обмена

timeout
Int64

максимальное время ожидания

unit
TimeUnit

единица времени аргумента timeout

Возвращаемое значение

объект, предоставленный другим потоком

Атрибуты

Комментарии

Ожидает прибытия другого потока в эту точку обмена (если текущий поток не прерывается thread#прерывание или указанное время ожидания истекает), а затем передает заданный объект в него, получая его объект в обратном случае.

Если другой поток уже ожидает в точке обмена, он возобновляется в целях планирования потоков и получает объект, переданный текущим потоком. Текущий поток возвращается немедленно, получая объект, переданный в обмен другим потоком.

Если ни один другой поток уже не ожидает обмена, текущий поток отключен для целей планирования потоков и находится в неактивном состоянии до тех пор, пока не произойдет одно из трех вещей: <ul<>li>Некоторые другие потоки вступают в обмен; или <li Некоторые другие потоки#прерывания текущего потока; или <ли>>указанное время ожидания истекает. </ul>

Если текущий поток: <ul><li>имеет свой прерванный статус при входе в этот метод; или <li>является Thread#прерывание при ожидании обмена, /ul>InterruptedException затем возникает, <а состояние прерывания текущего потока очищается.

Если указанное время ожидания истекает, TimeoutException создается исключение. Если время меньше нуля или равно нулю, метод не будет ждать вообще.

Документация по Java для java.util.concurrent.Exchanger.exchange(V, long, java.util.concurrent.TimeUnit).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к