Синхронизировать (это) в java быть избеганием?
некоторые разработчики выступают против использования синхронизированного (это), утверждая, что блокировка на частной ссылке является предпочтительным. Приведенные причины включают в себя потенциальную кражу блокировки, снижение пропускной способности и чрезмерную экспозицию информации.
Lock Rheats
. В то время как кража блокировки является потенциальной проблемой, это, скорее всего, возникнет непреднамеренно из -за случайного доступа к блокировке. Когда используется синхронизация (это), блокировка становится частью открытого интерфейса класса и должен быть задокументирован соответственно. В определенных сценариях другой код может намеренно получить доступ к блокировке, например, при использовании collections.synchronizedmap.
снижение пропускной способности
утверждение о том, что синхронизированный (этот) снижает пропускную способность чрезвычайно упрощенно. Только устранение синхронизации (это) не улучшит производительность. Правильная синхронизация требует тщательного дизайна для оптимизации пропускной способности.
чрезмерная информационная экспозиция
синхронизированный (это) разделяет блокировку на всех синхронизированных методах в классе. Если требуется мелкозернистая блокировка, то синхронизированный (this) не применима и должна быть заменена частной блокировкой.
, когда использовать Synchronized (this)
, несмотря на возникшие проблемы, синхронизированный (это) остается действительным синхронизацией с несколькими преимуществами: & широко используемая идиома, облегчающая читаемость и понимание кода.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3