임계영역
[Java] 쓰레드의 동기화
🔍 쓰레드의 동기화 멀티쓰레드 프로세스의 경우 같은 자원을 여러 쓰레드에서 공유하여 사용하기 때문에, 예상치 못한 결과를 얻을 수도 있다. 예를 들어 돈을 인출하는 과정을 두 개의 쓰레드 작업으로 생각해보자. 현재 3000원이 통장 잔고에 있고, 쓰레드 A는 3000원 인출을 요청한다. 이때, 쓰레드 B도 1000원을 인출 요청한다. 이 경우에 쓰레드 A가 deposit -= money 를 실행하기 전에 쓰레드 B가 deposit >= money 구문을 실행한다면 deposit이 마이너스가 될 것이다. public class BankAccount { private int deposit; public void withdraw(int money) { if(deposit >= money) { deposit -..