기술면접

멀티스레드 프로그래밍에서 동기화(Synchronization)가 왜 필요한가요? 예를 들어 설명해주세요.

yeeeon89 2024. 5. 8. 14:29

멀티스레드 프로그래밍에서 동기화는 여러 스레드가 동시에 같은 메모리(자원)에 접근할 때 데이터의 일관성과 정확성을 보장하기 위해 필요합니다.  동기화를 하지 않으면 스레드들이 자원을 동시에 읽고 쓸 때 '경쟁 조건'이 발생할 수 있으며, 이는 예측 불가능한 결과나 데이터의 손상을 초래할 할 수 있습니다.  

 

자바에서는 syncronized 키워드를 사용하여 메서드나 코드 블록을 동기화할 수 있습니다.

이 키워드는 해당 메서드나 코드 블록에 동시에 하나의 스레드만 접근할 수 있도록 보장합니다. 또한, Lock 인터페이스와구현체들을 사용하여 더 세밀한 동기화 제어가 가능합니다.