전체 개념은 : 프로세스는 운영 시스템 자원 할당의 기본 단위이고, 스레드가 스케쥴링 태스크 및 실행의 기본 단위이고
본질적으로 : 프로세스 및 스레드 기간에 대한 설명입니다, CPU 시간의 작동하지만 다른 입자 크기를 설명하는 것입니다.
나를 과정에 대해 이야기 해 보자 :
배경 :
컴퓨터 시스템에 ① : CPU + 우리의 컴퓨터를 구성하지만, 컴퓨터의 작동 (예 : 그래픽 카드, 광학 드라이브, 키보드, GPS 등 주변 기기 등) RAM + 다양한 자원이 실제로 CPU 및 관련 레지스터와 RAM 사이의 문제입니다.
② 사실 1 : CPU 너무 빨리, 레지스터는 그의 발자취, RAM에 잡을 수 있으며, 기타 각 버스 장치에 매달려 것은 완전하게 제공합니다. 때 다중 작업 실행, CPU는 항상 그 작업을 수행 할 수집니다.
③ 사실 2 : 작업을 실행할 때 CPU, 당신은 프로그램의 작업 컨텍스트를로드 한 후 실행하고 (다음 시간은 작업 부하를 계속 수행하는) 마지막으로 응용 프로그램 컨텍스트를 저장해야합니다.
요약 : 프로세스는 콘텍스트 스위치는 프로그램 실행 총 시간 = + CPU CPU 로더 콘텍스트 + CPU가 프로그램 저장된 프로그램을 실행 컨텍스트 포함한다
스레드 게다가 :
선명한 유 : 입경의 과정이 너무 많으면, 저장, 전송 컨텍스트가마다 회수. 우리가 컴퓨터에서 실행되는 소프트웨어에 비유 프로세스를 넣어 경우, 실제로 A, B로 나누어, 프로그램 A를 구현하고자, 여러 가지와 여러 프로그램 세그먼트가 있어야합니다, 소프트웨어는 논리에 의해 실행할 수 없습니다 실행 , C 등의 복수의 블록들의 조합. 이러한 특정 구현 될 수있다 : 과정 A는 CPU를 수득 = "CPU 부하 상황이 호는 프로그램 A의 실행 시작하고 다음 호 A가 수행 C 및 마지막 컨텍스트 상기 CPU 저장는 A 호에 B를 수행한다.
오버 헤드의 관점에서, 각 프로세스 자체의 코드 및 데이터 공간 (애플리케이션 컨텍스트)가, 프로그램의 전환 큰 오버 헤드를 가지고, 스레드 경량 과정을 알 수있는 스레드는 코드 및 데이터 공간의 동일한 유형을 공유 각 스레드는 그 자체 독립 실행 스택 및 프로그램 카운터 (PC), 오버 헤드 스레드 간의 작은 스위치를 갖는다.
환경 : 실행 다중 프로세스가 동시에 운영 시스템 (프로그램)과 같은 처리 (프로그램)을 동시에 수행하는 여러 스레드가 (CPU 스케줄링으로는, 필름은 각각의 시간에 하나 개의 실행 스레드를 가짐)
메모리 할당은 : 시스템이 각각의 프로세스에 할당하는 다른 메모리 공간을 실행하는 경우, 상기 CPU에 부가하고, 스레드 (해당 리소스 사용 리소스 스레드의 프로세스에 속에서), 시스템은 스레드를위한 메모리를 할당하지 않을 당신은 자원, 스레드 그룹을 공유 할 수 있습니다.
포함 관계 :이 프로세스 내에서 다수의 스레드가있는 절차 선 아니다 수행 할 경우 처리는, 용기의 스레드이지만, 라인 (스레드) 복수 함께 수행하는 단계; 스레드 프로세스의 일부가 또한 스레드라고도 경량 프로세스 또는 경량 프로세스.
----------------
참고 :
프로세스와 스레드 사이의 주요 차이점 1 (요약) https://blog.csdn.net/kuangsonghan/article/details/80674777
2 개 스레드 및 프로세스된다 차이점은 무엇입니까? - zhonyong 대답 - 알고 거의 https://www.zhihu.com/question/25532384/answer/81152571