운영체제로부터 자원을 할당받아 독립적으로 실행되는 프로그램의 인스턴스이다.
각 프로세스는 독립된 가상 주소 공간, 메모리, 파일 디스크립터, 각종 리소스 등을 갖고 있다.
각 프로세스는 별도의 주소 공간을 가지므로 다른 프로세스의 메모리에 직접 접근할 수 없다.
프로세스 간 통신을 위해서는 IPC(Inter-Process Communication) 메커니즘이 필요하다.
프로세스 간에는 강한 격리가 유지되어 오류나 예외로 인해 하나의 프로세스가 종료되더라도 다른 프로세스는 영향을 받지 않습니다.
하나의 프로세스 내에서 실행되는 여러 실행 흐름 또는 실행의 단위이다.
같은 프로세스 내의 스레드들은 동일한 주소 공간, 파일 디스크립터, 힙 등을 공유한다.
스레드는 같은 프로세스의 자원을 공유하기 때문에, 한 스레드가 만든 변경 사항은 다른 스레드에 영향을 줄 수 있다.
스레드 간 통신은 주소 공간과 데이터를 공유하기 때문에 비교적 간단하지만 스레드 간 동기화 문제에 주의해야 한다.
프로세스와 달리 스레드는 자원을 공유하기 때문에 하나의 스레드가 예외를 발생시키면 해당 프로세스 내의 다른 스레드들도 영향을 받을 수 있다.
프로세스는 독립된 실행 환경을 갖고 있다.
스레드는 하나의 프로세스 내에서 실행되는 실행 단위이다.
프로세스 간에는 강한 격리가 유지된다.
스레드는 동일한 프로세스의 자원을 공유한다.