«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Следует ли избежать «синхронизировать (это)» на Java?

Следует ли избежать «синхронизировать (это)» на Java?

Опубликовано в 2025-04-15
Просматривать:373

Should You Avoid `synchronized(this)` in Java?

Синхронизировать (это) в java быть избеганием?

некоторые разработчики выступают против использования синхронизированного (это), утверждая, что блокировка на частной ссылке является предпочтительным. Приведенные причины включают в себя потенциальную кражу блокировки, снижение пропускной способности и чрезмерную экспозицию информации.

Lock Rheats

. В то время как кража блокировки является потенциальной проблемой, это, скорее всего, возникнет непреднамеренно из -за случайного доступа к блокировке. Когда используется синхронизация (это), блокировка становится частью открытого интерфейса класса и должен быть задокументирован соответственно. В определенных сценариях другой код может намеренно получить доступ к блокировке, например, при использовании collections.synchronizedmap.

снижение пропускной способности

утверждение о том, что синхронизированный (этот) снижает пропускную способность чрезвычайно упрощенно. Только устранение синхронизации (это) не улучшит производительность. Правильная синхронизация требует тщательного дизайна для оптимизации пропускной способности.

чрезмерная информационная экспозиция

синхронизированный (это) разделяет блокировку на всех синхронизированных методах в классе. Если требуется мелкозернистая блокировка, то синхронизированный (this) не применима и должна быть заменена частной блокировкой.

, когда использовать Synchronized (this)

, несмотря на возникшие проблемы, синхронизированный (это) остается действительным синхронизацией с несколькими преимуществами: & широко используемая идиома, облегчающая читаемость и понимание кода.

    она безопасна и хорошо проверена, обеспечивает надежную синхронизацию. Синхронизированный (это) и частная блокировка зависит от конкретных требований приложения. В то время как синхронизированный (этого) не следует избегать прямого, разработчики должны тщательно рассмотреть его последствия и использовать частный замок при необходимости, например, когда гранулярность или скрытие информации являются приоритетом.
  • ]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3