78. 공유 중인 가변 데이터는 동기화해 사용하라
📌 1. 발표 전 알아야 할 개념
1) 스레드(Thread)
public static void main(String[] args) {
Runnable runn = new MyThread();
// [생성] 스레드 생성
Thread th1 = new Thread(runn);
// 스레드 실행 (run() 메서드가 비동기적 실행)
th1.start();
}
// [세팅] Runnable 인터페이스를 통해서 구현
class Test implements Runnable {
public void run() {
// 작업
}
}2) 동기 vs 비동기
3) 공유자원(Synchronization)과 임계 영역(Critical Section)
4) 상호배제(Mutual Exclution)과 가시성(Visibility), 원자성(Atomicity), 배타적 수행(Exclusive Execution)
📕 2. 동기화(Synchronization)

락
🔥 3. 동기화를 해보자 - 동기화 방법
3-1. Synchronized
Synchronized3-2. volatile
volatile🔧 4. 동기화와 관련된 주의사항
4-1. Thread.stop()은 절대 사용하지 마라
4-2. 읽기와 쓰기 모두가 동기화 되지 않으면 아무 의미가 없다
4-3. long과 double은 원자적이지 않을 수 있다
🤖 최종 결론
😶🌫️ 느낀점
Last updated





