synchronization
의 목적은 하나의 스레드에서만 지정된 코드를 실행할 수 있도록 하는 것입니다.
writeObject
를 synchronized
로 선언하는 것은 실제로는 문제가 없습니다.
하지만 클래스 내 synchronized
선언된 writeObject
가 동기화와 관련된 유일한 메서드인 것은 이해가 되질 않습니다.
규칙을 어긴 코드
public class RubberBall {
private Color color;
private int diameter;
public RubberBall(Color color, int diameter) {
// ...
}
public void bounce(float angle, float velocity) {
// ...
}
private synchronized void writeObject(ObjectOutputStream stream) throws IOException { // 규칙을 어긴 코드
// ...
}
}
규칙을 준수한 해결책
public class RubberBall {
private Color color;
private int diameter;
public RubberBall(Color color, int diameter) {
// ...
}
public void bounce(float angle, float velocity) {
// ...
}
private void writeObject(ObjectOutputStream stream) throws IOException {
// ...
}
}
If you like SONARKUBE, don’t forget to give me a star.