동시성 문제
멀티 스레드일 경우 스레드가 같은 인스턴스를 가지고 거의 동시에 수행하도록 작업을 할 때가 있다. 그렇게 되면 결과가 예상대로 안 나올 수가 있다.
예를 들어 잔액에서 출금액이 넘으면 안 되는 계좌에서 2개의 스레드가 동시에 출금을 하려하는데 먼저 스레드 1개가 뽑고 2 번째 스레드의 출금액이 잔액을 넘어가도 출금이 가능한다는 문제가 생긴다.
즉, 멀티 스레드가 동시에 수행하다 보니 경쟁 상태가 되는 것이다.
이러한 문제를 해결하긴 위한 방법으로는 동기화라는 방법이 있다.