>PHP 프레임워크 >Swoole >스울 코루틴은 무엇을 의미하나요?

스울 코루틴은 무엇을 의미하나요?

WBOY
WBOY원래의
2022-02-10 11:58:443537검색

Swoole 코루틴은 보다 가벼운 스레드입니다. 코루틴은 스레드에서 실행되며 주로 스레드의 경쟁적인 작업을 공동 작업으로 변환하는 데 사용됩니다.

스울 코루틴은 무엇을 의미하나요?

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

Swoole 코루틴은 무엇을 의미합니까?

우선, 코루틴에 대해 이야기해 보겠습니다. 그 특징은 무엇인가요?

코루틴은 스레드보다 더 가벼운 존재입니다. 프로세스가 여러 스레드를 가질 수 있는 것처럼 스레드도 여러 코루틴을 가질 수 있습니다. 코루틴은 다음과 같은 특징을 가지고 있습니다

  • 사용자 모드에서 실행되고, 운영 체제 커널에 의해 관리되지 않고 프로그램에 의해 완전히 제어됩니다.

  • IO 집약적인 작업을 처리하는 데 적합합니다. 주요 차이점은 CPU 집약적인 작업

  • 스레드의 경쟁력 있는 리소스를 공동 작업으로 변환

  • 코루틴 간 통신을 위한 채널

  • 컨텍스트 전환 오버헤드는 주로 스레드에서 실행됩니다. 대조적으로 프로세스의 컨텍스트 전환은 스택 리소스에 저장되는 반면 코루틴은 비동기식이며 비차단적입니다. 이는 사용자 모드 스레드의 대기열 작업과 동일합니다. 채널을 콜백으로 사용해야 하기 때문에 작업이 완료된 후 리소스를 두 번 빼앗을 필요가 없습니다. 코루틴은 간단히 스레드로 이해될 수 있지만 이 스레드는 사용자 모드에 있으며 운영 체제의 참여가 필요하지 않습니다. 생성, 파괴 및 전환 비용은 매우 낮으며 스레드 코루틴은 멀티 코어 CPU를 활용할 수 없다는 점이 다릅니다. 멀티 코어 CPU를 활용하려면 Swoole의 멀티 프로세스 모델을 사용해야 합니다. .

  • 간단히 말하면, 코루틴은 가벼운 동시성으로 협업하기 위해 스레드 아래에서 호스팅되는 프로그래머가 구현하는 경량 스레드입니다.

프로그래머 수가 증가함에 따라 대기업들은 계속해서 폭발적으로 성장하고 있습니다. 물론 일부 사람들은 스레드가 쉽지 않다고 생각하기 시작했습니다. 그렇다면 우리는 무엇을 해야 할까요? 물론 스레드의 개념을 기반으로 더 가볍고 속이는 데 더 좋은 경량 스레드 세트를 구현해야 합니다(실제로 코루틴은 스레드로 완전히 간주될 수 없습니다. 여러 개의 코루틴이 있음)

코루틴과 스레드의 차이점

Essence스레드 커널 상태

코루틴 사용자 상태

스케줄링 방법

스레드의 스케줄링 방법은 시스템 스케줄링이 일반적으로 사용됩니다. 스케줄링과 선제적 스케줄링. 직설적으로 말하면 스레드 스케줄링은 완전히 제어할 수 없습니다.

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

추천 학습:

swoole 튜토리얼

위 내용은 스울 코루틴은 무엇을 의미하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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