멀티 스레드 환경의 동시성 문제멀티 스레드 환경에서는 공유 자원에 여러 스레드가 동시에 접근하려고 경쟁하게 되는데, 이를 '동시성 문제'라고 한다. 동시성 문제의 예시로는 레이스 컨디션, 데이터 레이스가 있다. 1. 레이스 컨디션 (race condition)스레드가 실행되는 순서가 항상 보장되지 않아서 발생하는 문제. 여러 스레드가 공유 자원을 병행적으로(concurrently) 읽거나 쓸 때 자원에 접근한 순서에 따라 그 실행 결과가 바뀌는 상황이다. (예제 1)아래 코드를 보면 main() 고루틴과 func() 고루틴이 멀티 스레드로 실행된다.그런데 만약 (1) -> (2) 순으로 수행되었다면 아무것도 출력되지 않을 것이고, (2) -> (1) 순으로 수행되었다면 'the value is 1'이라..