프로세스는 자원, 데이터, 그리고 스레드로 구성된다. 프로세스는 스레드가 운영 체제로부터 자원을 할당 받아 소스 코드를 실행하여 데이터를 처리하는데 이 때, 싱글 스레드 프로세스는 데이터에 단 하나의 스레드만 접근하므로, 문제될 사항이 없지만 멀티 스레드 프로세스의 경우, 두 스레드가 동일한 데이터를 공유하게 되어 문제가 발생할 수 있다. 아래의 코드는 하나의 객체 enemy의 두명의 플레이어(두개의 스레드)가 공격하여 쓰러트리게 되는 코드이다. public class Main { public static void main(String[] args) { // 하나의 Enemy 객체를 공유하는 두개의 스레드 생성 Runnable enemyGetAttacked = new ThreadTask3(); Threa..