notificar y notifyAll ¿Quién debe usar?

Debemos tratar de utilizar notifyAll, ya que es posible utilizar el notifican se produce la pérdida de señal.

por ejemplo: tiempo de espera de modo para conseguir un conjunto de conexiones:

Suponiendo que esperar un largo tiempo T, el tiempo actual es ahora + T después de un tiempo de espera,


long overtime = now + T;
long remainTime = T;//等待的持续时间
while(remainTime>0 && result不满足条件){
    wait(remainTime);
    remainTime  = overtime - now;//等待剩余的持续时间    
}
return result;

join () necesidades método para prestar atención a su lugar: Un hilo, ejecute el método join hilo B, hilo A debe esperar después de la finalización de la aplicación de B, Un hilo puede continuar con su trabajo

rendimiento call (), dormir (), wait (), notify () métodos tales como el impacto en la cerradura?

Hilo después de método de rendimiento () realizar, no está en manos de la liberación del bloqueo, el sueño () método se llama, no está en manos de la liberación del bloqueo, el bloqueo debe poseer antes de llamar al método, llamando al método wait () después de , se dará a conocer la cerradura cuando la espera () devuelve el método, el hilo que mantiene el bloqueo de nuevo.

método antes de llamar al método, debe mantener el bloqueo, llamada notificar () en sí no libera el bloqueo.

Publicado siete artículos originales · ganado elogios 1 · visitas 326

Supongo que te gusta

Origin blog.csdn.net/baidu_36882394/article/details/103550023
Recomendado
Clasificación