공유 상태를 사용하는 코루틴의 문제와 데이터 동기화 1. 가변 변수를 사용할 때의 문제점쓰레드 간에 데이터를 전달하거나 공유된 자원을 사용하는 경우에는 가변 변수를 사용해 상태를 공유하고 업데이트해야 함하지만 여러 쓰레드에서 가변 변수에 동시에 접근해 값을 변경하면 데이터의 손실 혹은 불일치로 인해 심각한 버그가 발생 가능코루틴은 주로 멀티 쓰레드 환경에서 실행되기 때문에 코루틴을 사용할 때도 동일한 문제가 발생 가능 위 코드에서 결과가 예상한대로 나오지 않는 이유 1.1 메모리 가시성 문제해당 문제는 쓰레드가 변수를 읽는 메모리 공간에 관한 문제로 CPU 캐시와 메인 메모리 등으로 이루어진 하드웨어의 메모리 구조와 연관되어 있음쓰레드가 변수를 변경시킬 때 메인 메모리가 아닌 CPU 캐시를 사용할 경..