쓰레드

    [자바스터디] 쓰레드 동기화 & Volatile

    쓰레드 동기화 (Synchronized) 여러 쓰레드가 공유 리소스를 사용하는 경우, 서로 상호 배제를 하여 문제가 발생하지 않도록 하는 기법입니다. 왜 동기화가 필요할까? 하나의 프로세스에서 A쓰레드와 B쓰레드가 있다고 생각해보자, 여기서 A쓰레드가 c변수를 읽는동안 A쓰레드의 시간이 다 되어 B쓰레드로 CPU의 통제권이 넘어갔습니다. 이때 B쓰레드 또한 C변수를 읽고 변경하게 후 A쓰레드로 다시 통제권을 넘겨준다면, C변수의 상태가 변경되었기 때문에 잘못된 접근을 할 수 있습니다. 따라서 한 쓰레드가 진행중인 작업을 다른 쓰레드가 간섭하지 못하게 막는 것이 동기화입니다. 이를 위해 임계 영역(Critical Section), 뮤텍스(Mutex), 세마포어(Semaphore) 등의 동기화 기법을 사용합..