devrait synchronisé (this) en java être évité?
Certains développeurs plaident contre l'utilisation de Synchronisé (this), affirmant qu'un verrouillage sur une référence privée est préférable. Les raisons citées incluent le vol de verrouillage potentiel, le débit réduit et l'exposition excessive des informations.
Vol de verrouillage
Bien que le vol de verrouillage soit une préoccupation potentielle, il est plus susceptible de se produire involontairement en raison de l'accès accidentel à la verrouillage. Lorsque synchronisé (ceci) est utilisé, le verrou fait partie de l'interface exposée de la classe et doit être documenté en conséquence. Dans certains scénarios, un autre code peut accéder intentionnellement à la serrure, comme lors de l'utilisation de Collection.SynchronizedMap.
Débit réduit
La revendication que Synchronisé (ceci) réduit le débit est trop simpliste. L'élimination des synchronisés (ceci) seuls n'améliorera pas les performances. Une bonne synchronisation nécessite une conception minutieuse pour optimiser le débit.
Exposition des informations excessives
synchronisé (this) partage le verrou sur toutes les méthodes synchronisées au sein d'une classe. Si un verrouillage à grain fin est requis, alors synchronisé (ceci) n'est pas applicable et doit être remplacé par un verrou privé.
à utiliser synchronisé (ce Avantages:
Il s'agit d'un idiome largement utilisé, facilitant la lisibilité et la compréhension du code.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3