debe evitarse (esto) en java? Las razones citadas incluyen robo de bloqueo potencial, rendimiento reducido y exposición excesiva a la información.
bloqueo de robo
mientras que el robo de bloqueo es una preocupación potencial, es más probable que ocurra involuntariamente debido al acceso accidental al bloqueo. Cuando se utiliza (esto), el bloqueo se convierte en parte de la interfaz expuesta de la clase y debe documentarse en consecuencia. En ciertos escenarios, otro código puede acceder intencionalmente al bloqueo, como cuando se usa colección.synchronizedmap.
reducido de rendimiento
la afirmación que sincronizada (esto) reduce el ritmo es demasiado simplista. Eliminar sincronizado (esto) solo no mejorará el rendimiento. La sincronización adecuada requiere un diseño cuidadoso para optimizar el rendimiento.
Expone exposición de información
sincronizada (esto) comparte el bloqueo en todos los métodos sincronizados dentro de una clase. Si se requiere un bloqueo de grano fino, entonces sincronizado (esto) no es aplicable y debe reemplazarse con un bloqueo privado.
cuando usar sincronizado (this)
a pesar de las preocupaciones planteadas, sincronizadas (esto) sigue siendo una modificación de sincronización válida con varios avanzados: un Idiom ampliamente utilizado, facilitando la legibilidad y comprensión del código.
es seguro y bien probado, proporcionando sincronización confiable.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3