synchronized란 무엇일까?
2020. 2. 14. 18:12ㆍStudy
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 |