>  기사  >  PHP 프레임워크  >  스울 코루틴이 단일 스레드인 이유는 무엇입니까?

스울 코루틴이 단일 스레드인 이유는 무엇입니까?

WBOY
WBOY원래의
2022-03-14 15:46:012606검색

Swoole에서는 코루틴 전환이 직렬이므로 동일한 시점에 하나의 코루틴만 실행할 수 있습니다. 하나의 코루틴이 실행되면 다른 코루틴은 작동을 중지하므로 Swoole의 코루틴은 단일 코루틴을 기반으로 합니다.

스울 코루틴이 단일 스레드인 이유는 무엇입니까?

이 튜토리얼의 운영 환경: Windows 10 시스템, Swoole 4 버전, DELL G3 컴퓨터

Swoole 코루틴이 단일 스레드인 이유

간단히 말하면, 코루틴은 프로그래머가 호스팅하는 일종의 가벼운 구현입니다. 스레드에서 동시 협업 양 경량 스레드

프로그래머 수가 증가함에 따라 유명인이 계속해서 폭발적으로 성장하고 있습니다. 물론 스레드가 사용하기 쉽지 않다고 생각하는 사람들도 있습니다. 이것은 스레드 개념을 기반으로 합니다. 더 가볍고 별을 속이는 데 더 좋은 경량 스레드 세트를 구현해 보세요. (사실 스레드가 여러 개의 코루틴을 가질 수 있기 때문에 코루틴은 완전히 스레드로 간주될 수 없습니다.)

차이점 코루틴과 스레드 사이

Essence

스레드 커널 상태

코루틴 사용자 상태

스케줄링 방법

스레드 스케줄링 방법에는 일반적으로 사용되는 스케줄링 전략에는 시분할 스케줄링과 선점형 스케줄링이 있습니다. 직설적으로 말하면 스레드 스케줄링은 완전히 제어할 수 없습니다

코루틴의 스케줄링 방법은 협업 스케줄링입니다. 커널에 의해 제어되지 않으며 자유 정책 스케줄링으로 전환됩니다.

위에서 언급한 것처럼 코루틴은 사용자에게 있습니다. 모드이므로 소위 협업 스케줄링을 직접 사용할 수 있습니다. 프로그래머가 작성한 스케줄링 방법, 즉 시스템 커널을 통해 스케줄링되지 않고 내가 원하는 대로 스케줄링할 수 있는 것으로 이해됩니다.

Swoole의 코루틴 이해 소개

Swoole의 코루틴에 대해 심도 있게 이해할 계획이므로 Swoole의 코루틴 모델을 알아야 합니다.

Swoole의 코루틴은 단일 스레드를 기반으로 합니다. 코루틴의 전환은 직렬이며 동시에 하나의 코루틴만 실행된다는 것을 이해할 수 있습니다.

Swoole의 코루틴은 기본 구현에서 단일 스레드이므로 동시에 하나의 코루틴만 실행됩니다. 연속물. 이는 스레드와는 다릅니다. 다중 스레드는 병렬 실행을 위해 운영 체제에 의해 다중 CPU로 예약됩니다.

한 코루틴이 실행되는 동안 다른 코루틴은 작동을 멈춥니다. 차단 IO 작업을 수행할 때 현재 코루틴이 중단되고 기본 스케줄러가 이벤트 루프에 들어갑니다. IO 완료 이벤트가 있으면 기본 스케줄러는 이벤트에 해당하는 코루틴 실행을 재개합니다.

CPU 멀티 코어의 활용은 여전히 ​​Swoole 엔진의 다중 프로세스 메커니즘에 의존합니다.

추천 학습: swoole 튜토리얼

위 내용은 스울 코루틴이 단일 스레드인 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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