CyclicBarrier.Await Método

Definição

Sobrecargas

Nome Description
Await()

Aguarda até que todas as partes #getParties tenham invocado await essa barreira.

Await(Int64, TimeUnit)

Aguarda até que todas as partes #getParties tenham invocado await essa barreira ou o tempo de espera especificado decorrido.

Await()

Aguarda até que todas as partes #getParties tenham invocado await essa barreira.

[Android.Runtime.Register("await", "()I", "GetAwaitHandler")]
public virtual int Await();
[<Android.Runtime.Register("await", "()I", "GetAwaitHandler")>]
abstract member Await : unit -> int
override this.Await : unit -> int

Retornos

o índice de chegada do thread atual, em que o índice getParties() - 1 indica o primeiro a chegar e zero indica o último a chegar

Atributos

Exceções

se o thread atual foi interrompido durante a espera

se outro thread foi interrompido ou atingiu o tempo limite enquanto o thread atual estava aguardando, ou a barreira foi redefinida, ou a barreira foi interrompida quando await foi chamada ou a ação de barreira (se presente) falhou devido a uma exceção

Comentários

Aguarda até que todas as partes #getParties tenham invocado await essa barreira.

Se o thread atual não for o último a chegar, ele será desabilitado para fins de agendamento de thread e fica inativo até que uma das seguintes coisas aconteça: ul>li O último thread chega; ou <li>Algum outro thread#interrupção interrompe o thread atual; ou <li>Algum outro thread Thread#interrompe um dos outros threads de espera; ou <li>Algum outro thread atinge o tempo limite enquanto aguarda barreira; ou <li>Algum outro thread><<#reset invoca nessa barreira. </ul>

Se o thread atual: <ul><li>tem seu status interrompido definido na entrada para este método; ou <li>é Thread#interrupt interrompido enquanto espera </ul> , em seguida, InterruptedException é gerado e o status interrompido do thread atual é limpo.

Se a barreira estiver #reset enquanto qualquer thread estiver aguardando ou se a barreira #isBroken estiver quebrada quando await for invocada ou enquanto qualquer thread estiver aguardando, será BrokenBarrierException lançada.

Se qualquer thread for Thread#interrupt interrompido durante a espera, todos os outros threads de espera serão lançados BrokenBarrierException e a barreira será colocada no estado quebrado.

Se o thread atual for o último thread a chegar e uma ação de barreira não nula tiver sido fornecida no construtor, o thread atual executará a ação antes de permitir que os outros threads continuem. Se ocorrer uma exceção durante a ação de barreira, essa exceção será propagada no thread atual e a barreira será colocada no estado desfeito.

Java documentação para java.util.concurrent.CyclicBarrier.await().

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a

Await(Int64, TimeUnit)

Aguarda até que todas as partes #getParties tenham invocado await essa barreira ou o tempo de espera especificado decorrido.

[Android.Runtime.Register("await", "(JLjava/util/concurrent/TimeUnit;)I", "GetAwait_JLjava_util_concurrent_TimeUnit_Handler")]
public virtual int Await(long timeout, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("await", "(JLjava/util/concurrent/TimeUnit;)I", "GetAwait_JLjava_util_concurrent_TimeUnit_Handler")>]
abstract member Await : int64 * Java.Util.Concurrent.TimeUnit -> int
override this.Await : int64 * Java.Util.Concurrent.TimeUnit -> int

Parâmetros

timeout
Int64

o tempo para esperar pela barreira

unit
TimeUnit

a unidade de tempo limite do parâmetro de tempo limite

Retornos

o índice de chegada do thread atual, em que o índice getParties() - 1 indica o primeiro a chegar e zero indica o último a chegar

Atributos

Exceções

se o thread atual foi interrompido durante a espera

se o tempo limite especificado tiver decorrido

se outro thread foi interrompido ou atingiu o tempo limite enquanto o thread atual estava aguardando, ou a barreira foi redefinida, ou a barreira foi interrompida quando await foi chamada ou a ação de barreira (se presente) falhou devido a uma exceção

Comentários

Aguarda até que todas as partes #getParties tenham invocado await essa barreira ou o tempo de espera especificado decorrido.

Se o thread atual não for o último a chegar, ele será desabilitado para fins de agendamento de thread e fica inativo até que uma das seguintes coisas aconteça: ul>li O último thread chega; ou <li>O tempo limite especificado decorrido; ou <li>Algum outro thread Thread#interrupt interrompe o thread atual; ou <li>Alguma outra interrupção thread#thread interrompe um dos outros threads de espera; ou <li>><<Algum outro thread atinge o tempo limite enquanto aguarda a barreira; ou <li>Algumas outras invocações #reset de thread nessa barreira. </ul>

Se o thread atual: <ul><li>tem seu status interrompido definido na entrada para este método; ou <li>é Thread#interrupt interrompido enquanto espera </ul> , em seguida, InterruptedException é gerado e o status interrompido do thread atual é limpo.

Se o tempo de espera especificado estiver decorrido, será TimeoutException gerado. Se o tempo for menor ou igual a zero, o método não aguardará nada.

Se a barreira estiver #reset enquanto qualquer thread estiver aguardando ou se a barreira #isBroken estiver quebrada quando await for invocada ou enquanto qualquer thread estiver aguardando, será BrokenBarrierException lançada.

Se qualquer thread for Thread#interrupt interrompido durante a espera, todos os outros threads de espera serão lançados BrokenBarrierException e a barreira será colocada no estado quebrado.

Se o thread atual for o último thread a chegar e uma ação de barreira não nula tiver sido fornecida no construtor, o thread atual executará a ação antes de permitir que os outros threads continuem. Se ocorrer uma exceção durante a ação de barreira, essa exceção será propagada no thread atual e a barreira será colocada no estado desfeito.

Java documentação para java.util.concurrent.CyclicBarrier.await(long, java.util.concurrent.TimeUnit).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a