스레드와 프로세스의 차이점

Anonim

스레드 대 프로세스

프로세스

컴퓨터 프로그래밍 세계에서 프로세스는 프로그램의 인스턴스 또는 실행입니다. 모든 프로세스는 프로그램 코드와 기존 활동을 포함합니다. 특정 프로세스를 구성 할 수있는 스레드가 두 개 이상있을 수 있습니다. 명령은 동시에 실행될 수 있습니다. 그러나 사용중인 운영 체제에 따라 다릅니다.

기본적으로 프로세스는 상당히 중요한 프로그램입니다. 그들은 상당한 양의 메모리를 소비합니다. 따라서 실행에 사용 가능한 리소스에 크게 의존합니다. 이 모든 것을 말하면서 프로세스는 "중량 프로세스"로 알려져 있습니다.

모든 프로세스는 다른 메모리 위치에서 발생합니다. 따라서 더 많은 프로세스가있는 경우 각 프로세스 간의 전환은 각 메모리 할당에서 다른 할당으로 전환하는 데 시간이 걸리기 때문에 많은 비용이 듭니다. 각 프로세스는 자체 주소 공간을 가지고있어 상당한 양의 공급을 중독시킬 수 있습니다.

프로세스는 다른 프로세스와 독립적입니다. 따라서 상위 프로세스가 수정되면 다른 프로세스에도 영향을주지는 않습니다. 이러한 동작으로 인해 프로세스는 프로세스 간 통신을 필요로하므로 형제와 통신 할 수 있습니다. 또한, 프로세스는 훨씬 더 복잡한 특성으로 인해 쉽게 생성되지 않습니다. 이를 위해서는 건설을 달성하기 위해 일반적으로 상위 프로세스 인 프로세스의 중복이 필요할 수 있습니다.

-> ->

스레드

최소한의 시스템 자원으로도 스레드를 동시에 실행하여 지정된 작업을 수행 할 수 있습니다. 이유는 스레드가 실행 순서 일 뿐이 기 때문입니다. 이것은 단지 프로세스 내에서만 존재하므로 "경량 프로세스"라고도합니다.

이것은 프로그램 내에서 독립적 인 순차적 실행 경로이기 때문에 프로그램의 가장 작은 부분으로 간주됩니다. 스레드 간 컨텍스트 전환은 프로세스와 달리 최소한의 리소스 만 필요로합니다. 본질적으로 스레드는 주소 공간을 공유하며 쉽게 생성됩니다. 주 스레드로의 변경은 동일한 프로세스 내의 다른 스레드의 동작에 영향을 줄 수 있음을 언급해야한다. 분명히 동일한 프로세스에서 쓰레드 간의 통신은 직접적이고 매끄럽게 이루어집니다.

요약:

1. 프로세스는 둘 이상의 스레드를 포함 할 수 있습니다. 2. 스레드는 "경량"으로 간주되는 반면 프로세스는 "중량"으로 간주됩니다. 3. 프로세스는 사용 가능한 시스템 리소스에 크게 의존하며 스레드는 최소한의 리소스를 필요로합니다. 4. 주 스레드를 수정하면 후속 스레드에 영향을 줄 수 있지만 상위 프로세스의 변경 사항은 반드시 하위 프로세스에 영향을주지는 않습니다.5. 프로세스 내의 스레드는 프로세스가 너무 쉽게 통신하지 않는 동안 직접 통신합니다. 6. 쓰레드는 프로세스가 그리 간단하지는 않지만 생성하기 쉽습니다.