사용하는 이유 CPU가 코드 재배치 public class Program { static int x = 0; static int y = 0; static int r1 = 0; static int r2 = 0; static void Thread1() { y = 1; r1 = x; } static void Thread2() { x = 1; r2 = y; } static void Main(string[] args) { while (true) { x = y = r1 =r2 = 0; Task task1 = new Task(Thread1); Task task2 = new Task(Thread2); task1.Start(); task2.Start(); Task.WaitAll(task1, task2); // 두 쓰레드.....