멀티스레드 프로그래밍에서 동기화는 여러 스레드가 동시에 같은 메모리(자원)에 접근할 때 데이터의 일관성과 정확성을 보장하기 위해 필요합니다. 동기화를 하지 않으면 스레드들이 자원을 동시에 읽고 쓸 때 '경쟁 조건'이 발생할 수 있으며, 이는 예측 불가능한 결과나 데이터의 손상을 초래할 할 수 있습니다.
자바에서는 syncronized 키워드를 사용하여 메서드나 코드 블록을 동기화할 수 있습니다.
이 키워드는 해당 메서드나 코드 블록에 동시에 하나의 스레드만 접근할 수 있도록 보장합니다. 또한, Lock 인터페이스와구현체들을 사용하여 더 세밀한 동기화 제어가 가능합니다.
'기술면접' 카테고리의 다른 글
추상 클래스와 인터페이스의 차이점은 무엇이며, 각각을 사용하는 적절한 시나리오에 대해 설명해주세요. (0) | 2024.05.12 |
---|---|
멀티 프로세스 대신 멀티 스레드를 사용하는 이유는 무엇인가요? (0) | 2024.05.08 |
자바에서 가비지 컬렉션(GC)의 원리를 설명해주세요. (0) | 2024.05.05 |