반응형
1. 동기화 (synchronized)
- 한 객체에 여러 쓰레드가 동시에 접근해 사용하는 것을 막기 위해 사용한다.
- synchronized 식별자가 붙은 메서드는 한번에 하나의 쓰레드만 접근이 가능하다.
- 메서드가 사용 중일 때 다른 쓰레드가 메서드를 호출하면 앞의 쓰레드가 종료될 때까지 기다려야 한다.
* synchronized 를 메서드에 선언하면 해당 메서드가 Lock 걸려서 다른 쓰레드가 못들어온다.
* synchronized(this) {} 를 사용하면 메서드 내에서 특정 블럭만 동기화 처리를 한다.
* static 메서드에서 동기화 블럭을 사용할 때 synchronized(클래스명.class) 를 사용한다.
* 동기화 순서를 유지하기 위해서는 아래와 같이 코드를 작성하면 된다.
thread1.start()
thread1.join();
thread2.start()
thread2.join();
thread3.start()
thread3.join();
반응형
'면접 - 자바' 카테고리의 다른 글
개발자 면접 질문 - 오버로딩 (0) | 2020.12.03 |
---|---|
개발자 면접 질문 - 객체 직렬화(serialization) 정의 (0) | 2020.12.02 |
개발자 면접 질문 - HashMap과 HashTable의 차이 (0) | 2020.12.02 |
개발자 면접 질문 - 해시(Hash) 기본 개념과 구조 (0) | 2020.12.02 |
개발자 면접 질문 - 쓰레드 로컬(Thread Local) 정의 (0) | 2020.12.02 |