>  기사  >  스레드란 무엇입니까?

스레드란 무엇입니까?

青灯夜游
青灯夜游원래의
2019-06-11 13:51:4771894검색

스레드는 운영체제가 작업 스케줄링을 수행할 수 있는 가장 작은 단위입니다. 프로세스에 포함되며 프로세스에서 실제 작동하는 단위입니다. 스레드는 프로세스의 단일 순차적 제어 흐름을 의미하며 여러 스레드가 프로세스에서 동시에 실행될 수 있으며 각 스레드는 서로 다른 작업을 병렬로 수행합니다.

스레드란 무엇입니까?

스레드는 독립적인 일정 관리 및 파견의 기본 단위입니다. 스레드는 Win32 스레드와 같이 운영 체제 커널에 의해 예약된 커널 스레드일 수 있고, Linux 플랫폼의 POSIX 스레드와 같이 사용자 프로세스 자체에 의해 예약된 사용자 스레드이거나 Windows 7 스레드와 같은 커널과 사용자 프로세스에 의한 혼합 예약일 수 있습니다. .

동일한 프로세스의 여러 스레드는 가상 주소 공간, 파일 설명자, 신호 처리 등과 같은 프로세스의 모든 시스템 리소스를 공유합니다. 그러나 동일한 프로세스의 여러 스레드에는 자체 호출 스택, 자체 레지스터 컨텍스트 및 자체 스레드 로컬 저장소가 있습니다.

프로세스에는 많은 스레드가 있을 수 있으며, 각 스레드는 서로 다른 작업을 병렬로 수행합니다.

Features

멀티 스레드 OS에서는 일반적으로 여러 스레드가 프로세스에 포함됩니다. 각 스레드는 CPU 사용의 기본 단위로 사용되며 오버헤드가 최소화되는 개체입니다. 스레드에는 다음과 같은 속성이 있습니다.

1), 경량 엔터티

스레드의 엔터티는 기본적으로 시스템 리소스를 소유하지 않으며, 독립적인 운영을 보장할 수 있는 몇 가지 필수 리소스만 가지고 있습니다.

스레드 엔터티에는 프로그램, 데이터 및 TCB가 포함됩니다. 스레드는 동적 개념이며 스레드 제어 블록(TCB)에 의해 동적 특성이 설명됩니다.

2) 독립적인 스케줄링 및 파견의 기본 단위입니다.

멀티 스레드 OS에서 스레드는 독립적으로 실행될 수 있는 기본 단위이므로 독립적인 스케줄링 및 발송의 기본 단위이기도 합니다. 스레드는 매우 "가벼우므로" 스레드 전환이 매우 빠르고 동일한 프로세스에서 오버헤드가 거의 없습니다.

3) 동시에 실행될 수 있습니다.

프로세스의 여러 스레드를 동시에 실행할 수 있으며 프로세스의 모든 스레드도 동시에 실행할 수 있습니다. 마찬가지로 다른 프로세스의 스레드도 동시에 실행하여 프로세서와 주변 장치의 작동 기능을 최대한 활용할 수 있습니다. 병렬로.

4) 프로세스 리소스를 공유합니다.

동일한 프로세스의 각 스레드는 프로세스가 소유한 리소스를 공유할 수 있습니다. 이는 모든 스레드가 동일한 주소 공간(프로세스의 주소 공간)을 가지며 이는 스레드가 주소 공간에 액세스할 수 있음을 의미합니다. 프로세스의 모든 가상 주소 외에도 프로세스가 소유한 열린 파일, 타이머, 세마포어 메커니즘 등에 액세스할 수도 있습니다. 동일한 프로세스의 스레드는 메모리와 파일을 공유하므로 스레드는 커널을 호출하지 않고도 서로 통신합니다.

위 내용은 스레드란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.