synchronized란 무엇일까?

2020. 2. 14. 18:12Study

synchronized (동기화)

 

- synchronized는 하나의 객체에 여러 개의 객체가 동시에 접근해 처리하는 것을 막기 위해 사용합니다.

  (Thread의 불규칙적인 자원 공유를 막기 위해 사용)

 

- synchronized 식별자는 보통 메소드의 선언부에 쓰고 이 키워드가 붙은 메서드는 한 번에 하나의 스레드만 접근이 가능하며 메서드가 사용 중일 때  다른 스레드가 메서드를 호출하면 앞의 스레드가 종료될 때까지 기다려야 합니다.

 

Ex)

public String data = null;


public synchronized String getData() {

     if (data == null) {
         data = new String();
     }

     return data;
}

 

동기화 블럭 사용

Ex)

public String getData() {
     synchronized (this) {
          if (data == null) {
              data = new String();
          }

          return data;
     }

}

'Study' 카테고리의 다른 글

IoC와 DI란 무엇일까?  (0) 2020.05.06
POJO Class란 무엇일까?  (0) 2020.03.09
LinkedList 와 ArrayList의 특징  (0) 2020.01.13
Process 와 Thread의 차이  (0) 2019.12.03
BufferedReader 와 BufferedWriter  (0) 2019.10.29