"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 자바에서`동기화 (this)`를 피해야합니까?

자바에서`동기화 (this)`를 피해야합니까?

2025-04-15에 게시되었습니다
검색:624

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

Lock Theft

While lock theft is a potential concern, it's more likely to occur unintentionally due to accidental access to the lock. 동기화 된 (이)가 사용되면 잠금은 클래스의 노출 된 인터페이스의 일부가되며 그에 따라 문서화해야합니다. 특정 시나리오에서는 Collections.synchronizedMap을 사용할 때와 같이 다른 코드가 잠금에 의도적으로 액세스 할 수 있습니다.

는 처리량을 단순하게 감소시킵니다. 동기화 된 (이것) 만 제거해도 성능이 향상되지 않습니다. 적절한 동기화를 위해서는 처리량을 최적화하기 위해 신중한 설계가 필요합니다.

과도한 정보 노출

동기화 된 (이)는 클래스 내의 모든 동기화 된 메소드에서 잠금을 공유합니다. 미세한 잠금이 필요한 경우, 동기화 된 (this)는 적용 할 수 없으며 개인 잠금 장치로 대체되어야합니다.

  • [&] [&]
  • 는 남아 있습니다. 코드 가독성과 이해를 용이하게하는 널리 사용되는 관용구. 동기화 된 (이) 및 개인 잠금은 응용 프로그램의 특정 요구 사항에 따라 다릅니다. 동기화 된 (이)를 완전히 피해서는 안되지만, 개발자는 세분성이나 정보 숨기기가 우선 순위 일 때와 같이 필요할 때 시사점을 신중하게 고려하고 개인 잠금을 사용해야합니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3