작은 테트리스 게임 안에서도 다양한 스레드가 사용된다. 프로그램의 실행을 담당하는 '메인스레드' 게임 실행을 담당하는 '게임스레드' 블럭의 움직임을 담당하는 '블럭스레드' 게임 안의 여러 효과음을 담당하는 '음악스레드' 게임의 이미지를 그리는 'awt, swing 데몬스레드' 이렇게 다양한 스레드들이 한 프로그램 안에서 독립적으로 활동한다. 그러므로 스레드들이 자원을 두고 서로 충돌되지 않도록 적절한 코딩을 할 필요가 있다. 스레드란 무엇인가? CPU가 처리하는 일의 단위를 '프로세스'라고 한다. 그 프로세스는 여러 개의 스레드로 구성된다. JVM은 스레드를 STACK영역에 할당한다. 메모리를 할당받은 각각의 스레드들은 자신만의 STACK 구조를 갖는다. 이렇게 자신만의 메모리를 갖는 작업단위는 '독립성..