프로세스는 운영체제로부터 자원을 할당받는 작업의 단위이고 스레드는 프로세드가 할당받은 자원을 이용하는 실행의 단위입니다.
프로세스는 실행될 때 운영체제로 부터 프로세서, 필요한 주소 공간, 메모리 등 자원을 항당받음.
스레드는 한 프로세스 내에서 동작되는 여러 실행의 흐름으로 프로세스 내의 주소 공간이나 자원들을 같은 프로세스 내의 쓰레드끼리 공유하면서 실행됨
운영체제는 시스템 자원을 효율적으로 관리하기 위해 스레드를 사용
장점:
- 메모리공간과 시스템 자원 소모 줄어듬
- 힙 영역을 이용해 데이터 주고받을 수 있음
- 캐시 메모리를 비울 필요가 없어서 빠름
- 자원 소모 줄어듬
단점:
스레드 간의 자원 공유는 전역 변수를 이용하므로 동기화 문제에 신경 써야함
병목현상이 발생하여 성능 저하될 가능성이 높음
동기화 관련해서 락(lock)을 방지해줘야함
스레드: 코드, 데이타, 힙 영역 공통으로 사용함
—