Process는 컴퓨터에서 실행되는 프로그램의 인스턴스.
각각의 프로세스는 메모리, 파일, 네트워크 연결 등의 시스템 자원을 할당받아 실행.
ex) 웹 브라우저를 실행하면 웹 브라우저의 프로세스가 하나 생성. 이렇게 각각의 프로세스는 독립적으로 실행됨. 다른프로세스의 변수나 자료구조에 접근할 수 없음.(다른프로세스의 자원에 접근하려면 IPC를 사용해 통신하여야 함.
프로세스 내에서 실행되는 실행의 단위
스레드는 프로세스 내에서 stack만 따로 할당받음. Code,Data, Heap을 공유함.
동기화 문제
동기화 문제를 해결하기 위하여 Synchronized를 사용하여 다른 thread가 침범하지 못하도록 대기를 검.
설계를 잘못하면 모두 대기에 걸려서 Deadlock에 빠질수 있으니 주의