프로세스란?
프로세스란 프로그램 하나가 운영체제에서 실행되고 있을 때, 이것을 하나의 프로세스라고 합니다.
운영체제로부터 CPU시간, 메모리 등의 자원을 할당받아 사용하며, 독립적으로 사용 합니다.
서로 다른 프로세스 끼리 자원을 사용하려면 독립되어 있기에 IPC를 사용하여 자원을 요청합니다.
스레드란?
스레드란 프로세스 내에서 진행되는 실행 흐름입니다.
프로세스 내에서 자원을 사용 하기 때문에, 스레드간에 자원을 요청 하기 위해 프로세스처럼 IPC
를 사용 하지 않아도 되기 때문에 비용이 더 적습니다.
그리하여 동시에 여러 스레드가 진행 중일때, 동기화와 관련된 이슈가 있을 수 있습니다.
예를들어 A 도 실행중이고 B도 실행중인데,
B가 A에서 사용하던 값을 바꾸어 버립니다.
그러면 프로그램에 문제가 생길 수 있기 때문에, 이 이슈를 해결하기 위하여 동기화를 진행 하여야 합니다.