프로그래밍을 공부할때 CPU의 스레드를 공부할때 혼란스러워 하는 경우가 많습니다. CPU의 스레드가 소프트웨어상의 스레드와 용어가 같기 때문입니다 CPU 에서 말하는 스레드는 프로그래밍에서 배우는 스레드와 다릅니다 CPU에서 스레드는 하나의 코어, 즉 하나의 하나의 로봇으로 두 대의 로봇이 일하는 듯한 효율을 낼 수 있도록 하는 기술을 말합ㅇ니다. 외부에서는 마치 두 개의 코어가 달린 것처럼 보이는 데 예를 들어 2코어 스레드 사양의 CPU를 장착한 컴퓨터의 정보를 열어보면 4코어가 설치 외어 있다고 인식합니다.
프로세스 : 프로그램을 메모리 상에서 실행중인 작업
스레드 : 프로세스 안에서 실행되는 여러 흐름 단위
기본적으로 프로세스마다 최소 1개의 스레드 소유 (메인 스레드 포함)
일반적으로 하나의 프로세스는 하나의 스레드를 가지고 작업을 수행하게 됩니다.
하지만 멀티 스레드(multi thread)란 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미합니다.
멀티 프로세스(multi process)- 여러 개의 CPU를 사용하여 여러 프로세스를 동시에 수행하는 것을 의미합니다
멀티 스레드와 멀티 프로세스 모두 여러 흐름을 동시에 수행하다는 공통점을 가지고 있습니다.
멀티 프로세스는 각 프로세스가 독립적인 메모리를 가지고 별도로 실행되지만, 멀티 스레드는 각 스레드가 자신이 속한 프로세스의 메모리를 공유한다는 점이 다릅니다.
멀티 스레드는 각 스레드가 자신이 속한 프로세스의 메모리를 공유하므로, 시스템 자원의 낭비가 적습니다.또한, 하나의 스레드가 작업을 할 때 다른 스레드가 별도의 작업을 할 수 있어 사용자와의 응답성도 좋아집니다.