Alguien en el trabajo acaba de pedir el razonamiento detrás de tener que esperar dentro de un sincronizado.¿Alguien puede explicar los monitores de hilo y esperar?
Honestamente, no puedo ver el razonamiento. Entiendo lo que dicen los javadocs: que el hilo debe ser el propietario del monitor del objeto, pero ¿por qué? ¿Qué problemas previene? (Y si es realmente necesario, ¿por qué el método de espera no puede obtener el monitor en sí?)
Estoy buscando un tema en profundidad por qué o quizás una referencia a un artículo. No pude encontrar uno en Google rápido.
Ah, también, ¿cómo se compara thread.sleep?
corregir: Gran conjunto de respuestas - Realmente me gustaría poder seleccionar más de una porque todas me ayudaron a entender lo que estaba pasando.
Entiendo sincronizado. La pregunta era, ¿por qué object.wait() necesita tener el monitor, o por qué la adquisición de ese monitor no puede ser encapsulada dentro del objeto?método wait() (¿o es eso lo que hace Thread.sleep()? –
Lo siento, no lo entendí. La respuesta se ha actualizado. ¿Eso responde mejor a tu pregunta? – 64BitBob
Sí, eso tiene mucho sentido, aunque la pregunta abierta es Todavía "¿por qué el método de espera no puede sincronizarse solo?" –