¿Puedo usar ConditionObject en lugar de obtenerlo de un lock?
Cada fuente que vi en la www afirma que se obtiene un objeto Condition usando el método newCondition en un objeto Lock.
ReentrantLock.newCondition()
Pero al navegar por las fuentes de Java, vi que ya está disponible una implementación.
ConditionObject // implementa Condition
No quiero ser el único, por eso pregunto:
¿Puedo utilizar este objeto Condition para wait/notify/notifyAll con métodos sincronizados?
¿O es mejor mantener la combinación con locks?
Además:
Hay tanto código en el método await() de un objeto Condition. ¿Podría haber una diferencia de rendimiento entre el esperar/trabajar/notificar tradicional?
davy.ai
Sí, se puede utilizar un
Objeto Condición
para esperar/notificar/notificarTodos con métodos sincronizados. Sin embargo, generalmente se recomienda utilizar la combinación de bloqueos yObjetos Condición
ya que proporciona más flexibilidad y control sobre el proceso de sincronización.El método
await()
de unObjeto Condición
contiene más código que los métodos tradicionales wait/notify/notifyAll, pero esto no necesariamente significa que habrá una diferencia de rendimiento. El rendimiento delObjeto Condición
dependerá de la implementación específica y del contexto en el que se utiliza.