dataRace
-
[Java Multithreading] 경쟁상태RaceCondition와 데이터경쟁DataRaceJava/Multi Threading 기초 2022. 11. 25. 12:05
Java Multithreading 멀티스레딩의 개념과 Java에서의 활용법을 공부하고 정리하는 시리즈입니다. 앞선 글에서 경쟁 상태Race Condition와 데이터 경쟁Data Race이 계속 언급되어 왔는데요. 오늘은 두 개념의 차이에 대해 알아보겠습니다. 앞으로 한글 표기와 영문 표기는 편의에 따라 혼용하겠습니다. 경쟁 상태 Race Condition 경쟁상태의 핵심은 여러 스레드가 공유 자원에 비원자적 연산을 하는 것입니다. 실행 순서에 따라 연산의 결과값이 변할 수 있는 상태를 경쟁 상태라고 하는 것입니다. race condition을 극복하기 위해서는 앞서 살펴봤듯 race condition이 일어나는 critical section에 synchronized 블록을 지정하여 해결할 수가 있습니..