
- 프로세스는 오직 한개의 스레드로만 구성하는 싱글 스레드 프로세스와 하나 이상의 스레드로 구성하는 멀티 스레드 프로세스를 구분할 수 있다.
- 작업 처리에 있어서 단일 스레드와 멀티 스레드의 선택 기준은 어떤 방식이 더 자원을 효율적으로 사용하고 성능처리에 유리한가?

-
CPU 여러개, 스레드 하나. 나머지 CPU는 논다.
-
순차적 실행으로 응답성 및 전체 처리량이 낮다.
-
현대 CPU → 대부분 멀티코어를 지원한다.
- 병렬적 성능, 동시성 자원 사용 관점에서 싱글 스레드보다 멀티스레드 기반 프로그래밍이 유리한 점이 많다.
-
싱글 스레드 혹은 아주 적은 스레드를 활용한 비동기 논블럭킹 프로그래밍은 많은 수의 멀티 스레드 기반 프로그래밍보다 더 좋은 성능과 응답성을 보여줄 수 있다.
멀티 스레딩과 동시성

- CPU의 동시적 작업 처리는 CPU 코어 개수보다 스레드의 개수가 많을 때, 즉 멀티스레딩 환경에서 자원을 효율적으로 배분하고 사용하기 위해 설계.
- 동시성 문제랑 하나의 스레드가 어떤 메모리 영역의 데이터를 쓰고 있는데, 또 다른 스레드가 같은 메모리 영역의 데이터를 읽거나 쓸 경우 발생 가능한 문제.
- 멀티 스레드를 운용하는 애플리케이션에서 발생하는 문제이다.
- 공유 메모리 영역.
싱글 스레드의 경우 → 만약 오류가 생기면 applicaion이 통째로 종료됨.
하지만, 멀티스레드의 경우 오류가 나더라도 다른 스레드는 계속 동작함.