Swoole 코루틴은 보다 가벼운 스레드입니다. 코루틴은 스레드에서 실행되며 주로 스레드의 경쟁적인 작업을 공동 작업으로 변환하는 데 사용됩니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, Swoole 4 버전, DELL G3 컴퓨터
우선, 코루틴에 대해 이야기해 보겠습니다. 그 특징은 무엇인가요?
코루틴은 스레드보다 더 가벼운 존재입니다. 프로세스가 여러 스레드를 가질 수 있는 것처럼 스레드도 여러 코루틴을 가질 수 있습니다. 코루틴은 다음과 같은 특징을 가지고 있습니다
사용자 모드에서 실행되고, 운영 체제 커널에 의해 관리되지 않고 프로그램에 의해 완전히 제어됩니다.
IO 집약적인 작업을 처리하는 데 적합합니다. 주요 차이점은 CPU 집약적인 작업
스레드의 경쟁력 있는 리소스를 공동 작업으로 변환
코루틴 간 통신을 위한 채널
컨텍스트 전환 오버헤드는 주로 스레드에서 실행됩니다. 대조적으로 프로세스의 컨텍스트 전환은 스택 리소스에 저장되는 반면 코루틴은 비동기식이며 비차단적입니다. 이는 사용자 모드 스레드의 대기열 작업과 동일합니다. 채널을 콜백으로 사용해야 하기 때문에 작업이 완료된 후 리소스를 두 번 빼앗을 필요가 없습니다. 코루틴은 간단히 스레드로 이해될 수 있지만 이 스레드는 사용자 모드에 있으며 운영 체제의 참여가 필요하지 않습니다. 생성, 파괴 및 전환 비용은 매우 낮으며 스레드 코루틴은 멀티 코어 CPU를 활용할 수 없다는 점이 다릅니다. 멀티 코어 CPU를 활용하려면 Swoole의 멀티 프로세스 모델을 사용해야 합니다. .
프로그래머 수가 증가함에 따라 대기업들은 계속해서 폭발적으로 성장하고 있습니다. 물론 일부 사람들은 스레드가 쉽지 않다고 생각하기 시작했습니다. 그렇다면 우리는 무엇을 해야 할까요? 물론 스레드의 개념을 기반으로 더 가볍고 속이는 데 더 좋은 경량 스레드 세트를 구현해야 합니다(실제로 코루틴은 스레드로 완전히 간주될 수 없습니다. 여러 개의 코루틴이 있음)
코루틴과 스레드의 차이점Essence스레드 커널 상태
코루틴 사용자 상태
스케줄링 방법
스레드의 스케줄링 방법은 시스템 스케줄링이 일반적으로 사용됩니다. 스케줄링과 선제적 스케줄링. 직설적으로 말하면 스레드 스케줄링은 완전히 제어할 수 없습니다.
코루틴의 스케줄링 방법은 협업 스케줄링입니다. 커널에 의해 제어되지 않으며 무료 정책 스케줄링으로 전환됩니다.
추천 학습:
swoole 튜토리얼위 내용은 스울 코루틴은 무엇을 의미하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!