java.util.concurrent.locks.Lock
은 synchronized
보다 강력하고 유동적인 형태로 locking 연산을 제공합니다
그래서 Lock
에 synchronized
를 사용하는 것은 매우 어리석은 일입니다
이런 객체는 tryLock()
이나 unlock()
같은 방식으로 잠금을 제어하는 것이 맞습니다
규칙을 어긴 코드
Lock lock = new MyLockImpl();
synchronized(lock) { // 규칙을 어긴 코드
//...
}
규칙을 준수한 해결책
Lock lock = new MyLockImpl();
lock.tryLock();
//...
같이보면 좋은 자료
- CERT, LCK03-J. - 상위 수준 객체들의 고유한 lock에 sychronize를 사용하지 마세요
If you like SONARKUBE, don’t forget to give me a star.