Windows에서 CPU 시간을 할당하는 기본 단위는 스레드입니다. 스레드는 운영 체제가 작업 스케줄링을 수행할 수 있는 가장 작은 단위입니다. 프로세스에 포함되며 프로세스에서 실제 작동하는 단위입니다.
스레드는 프로세스의 단일 순차 제어 흐름을 의미합니다. 여러 스레드가 프로세스에서 동시에 실행될 수 있으며 각 스레드는 서로 다른 작업을 병렬로 수행합니다. (추천 학습: PHP 비디오 튜토리얼)
Unix System V 및 SunOS에서는 경량 프로세스라고도 하지만 경량 프로세스는 커널 스레드를 더 많이 참조하며 사용자 스레드(사용자 스레드)를 스레드라고 합니다.
스레드는 독립적인 스케줄링 및 파견의 기본 단위입니다.
스레드는 Linux 플랫폼의 POSIX 스레드와 같이 사용자 프로세스 자체에 의해 예약된 Win32 스레드와 같이 운영 체제 커널에 의해 예약된 커널 스레드이거나 Windows와 같은 사용자 프로세스에 의한 혼합 예약일 수 있습니다. 스레드 7개.
스레드는 프로세스의 엔터티입니다. 프로세스에는 여러 스레드가 있을 수 있으며 스레드에는 상위 프로세스가 있어야 합니다. 스레드는 시스템 리소스를 소유하지 않으며 작업에 필요한 일부 데이터 구조만 소유합니다. 프로세스가 소유한 모든 리소스를 상위 프로세스의 다른 스레드와 공유합니다. 스레드는 프로그램의 동시 실행을 달성하기 위해 스레드를 생성하고 삭제할 수 있습니다.
일반적으로 스레드에는 준비, 차단, 실행이라는 세 가지 기본 상태가 있습니다.
다중 CPU 시스템에서는 서로 다른 스레드가 동일한 프로세스에 속하더라도 서로 다른 스레드가 동시에 서로 다른 CPU에서 실행될 수 있습니다. 다중 프로세서를 지원하는 대부분의 운영 체제는 프로세스가 자체 스레드와 각 프로세서 간의 선호도를 제어할 수 있도록 하는 프로그래밍 인터페이스를 제공합니다.
때때로 스레드를 경량 프로세스라고도 합니다. 프로세스와 마찬가지로 스레드는 프로그램의 독립적인 동시 실행 경로입니다. 각 스레드에는 자체 스택, 자체 프로그램 카운터 및 로컬 변수가 있습니다. 그러나 프로세스 내의 스레드는 별도의 프로세스에 비해 서로 덜 격리됩니다.
각 프로세스가 가져야 하는 메모리, 파일 핸들 및 기타 상태를 공유합니다.
프로세스는 동시에 실행되는 것처럼 보이지만 서로 동기화되지 않는 여러 스레드를 지원할 수 있습니다. 프로세스의 여러 스레드는 동일한 메모리 주소 공간을 공유합니다. 즉, 동일한 변수와 개체에 액세스할 수 있고 동일한 힙에서 개체를 할당할 수 있습니다.
이렇게 하면 스레드 간에 정보를 공유하기가 더 쉬워지지만 동일한 프로세스에서 다른 스레드를 방해하지 않도록 주의해야 합니다.
PHP 관련 기술 기사를 더 보려면 PHP 그래픽 튜토리얼 칼럼을 방문하여 알아보세요!
위 내용은 CPU를 할당하는 기본 단위의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!