deve ser sincronizado (this) em java ser evitado? Os motivos citados incluem um potencial roubo de bloqueio, taxa de transferência reduzida e exposição excessiva à informação. Quando sincronizado (isso) é usado, o bloqueio se torna parte da interface exposta da classe e deve ser documentado de acordo. Em certos cenários, outro código pode acessar intencionalmente o bloqueio, como ao usar coleta.synchronizedMap.
taxa de transferência reduzida
A afirmação de que sincronizada (este) reduz a taxa de transferência é excessivamente simplista. A eliminação sincronizada por si só não melhorará o desempenho. A sincronização adequada requer um design cuidadoso para otimizar a taxa de transferência.
exposição excessiva de informação
sincronizada (this) compartilha o bloqueio em todos os métodos sincronizados dentro de uma classe. Se o bloqueio de granulação fino for necessário, então sincronizado (este) não é aplicável e deve ser substituído por um bloqueio privado. Idioma amplamente usado, facilitando a legibilidade e a compreensão do código. Sincronizado (isso) e um bloqueio privado depende dos requisitos específicos do aplicativo. Embora sincronizados (isso) não devam ser evitados completamente, os desenvolvedores devem considerar cuidadosamente suas implicações e usar uma trava privada quando necessário, como quando a granularidade ou o esconderijo da informação é uma prioridade.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3