Process
실행중인 프로그램
OS로부터 메모리를 할당받아 Process가 됨
Thread
하나의 Process는 하나 이상의 Thread를 가짐
실제 작업을 수행하는 단위
Thread는 각각 자신만의 작업 공간(Context)을 가짐
여러 Thread가 자원 하나를 공유 시 자원에 대한 경쟁 발생
동기화
자바는 다중 상속이 허용되지 않음 -> 이미 다른 클래스를 상속한 경우 Thread를 만들 때 Runnable interface를 implements해야 함
Thread가 CPU를 점령할 수 있는 상태
스케줄러가 Thread들에게 CPU 배분
thread가 CPU를 점령할 수 없는 상태
2개의 Thread가 동시에 작동하는 것으로 한 Thread의 결과를 다른 Thread가 참고할 때 사용
join()을 건 Thread는 Not Runnable에 빠졌다가 다른 Thread 종료 시 Runnable 복귀하여 작동 시작
Object 클래스의 메서드로 어떤 Thread가 필요한 자료를 배분 받을 수 없을 때 대기