Swoole 코루틴의 예비 탐색
swoole이 학습 중인 코루틴에서는 동시에 실행되는 것처럼 보이는 것이 코루틴의 특징입니다. 그것을 실험해 보세요.
무료 권장: swoole
이 기사의 전제는 swoole이 Linux에 설치되었다는 것입니다. 최신 버전은 4.5.9 (2020-12-17)
요구 사항을 구성하고 한 번에 5개의 코루틴을 생성하며 각 코루틴은 1~3초 사이의 임의의 숫자를 휴면한 다음 모든 프로그램이 휴면 시간을 인쇄합니다. 완료되면 전체 프로세스에 최대 3초가 소요됩니다.
1.php
foreach (range(1, 5) as $v) { go(function () { $sleep_time = random_int(1, 3); sleep($sleep_time); echo "睡眠了" . $sleep_time . "秒\n"; });}
php 1.php를 사용하여 실행하면 프로그램을 실행할 수 있는데 코루틴 느낌이 아니라 동기적으로 실행됩니다. 전체 실행에는 3초 이상이 소요됩니다. 여기에 작은 버그가 있는 것으로 밝혀졌습니다. co:sleep을 사용해야 전체 프로그램에 영향을 주지 않고 이 코루틴에서 잠을 잘 수 있습니다.
2.php
foreach (range(1, 5) as $v) { go(function () { $sleep_time = random_int(1, 3); co::sleep($sleep_time); echo "睡眠了" . $sleep_time . "秒\n"; });}
결과는 다음과 같습니다.
睡眠了1秒 睡眠了2秒 睡眠了2秒 睡眠了3秒 睡眠了3秒
간단히 말하면, 잠을 적게 자는 코루틴이 먼저 종료되어야 하고, 동시에 자는 코루틴은 동시에 문자를 출력합니다. 그리고 프로그램 종료 시 소요된 총 시간은 3초로 동시성이 성공했음을 나타냅니다.
이제 5개의 코루틴이 완료되면 hello world가 인쇄될 수 있기를 바랍니다!
3.php
foreach (range(1, 5) as $v) { go(function () { $sleep_time = random_int(1, 3); co::sleep($sleep_time); $a = random_int(1, 1000); echo "睡眠了" . $sleep_time . "秒\n"; });}echo "hello world!\n";
결과는 또 다른 문제입니다. hello world가 항상 먼저 인쇄됩니다.
그래서 여기서는 코루틴 컨테이너를 사용해야 합니다.
4.php
Co\run(function () { foreach (range(1, 5) as $v) { go(function () { $sleep_time = random_int(1, 3); co::sleep($sleep_time); echo "睡眠了" . $sleep_time . "秒\n"; }); }});echo "hello world!\n";
결과는 다음과 같습니다.
睡眠了1秒 睡眠了2秒 睡眠了3秒 睡眠了3秒 睡眠了3秒 hello world!
이번에는 올바른 결과가 인쇄될 수 있습니다. 완벽합니다!
swoole의 코루틴이 좀 재미있네요~
위 내용은 Swoole 코루틴의 예비 탐색의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











기사는 사용자 정의 모듈, 상세 단계, 모범 사례 및 문제 해결과 함께 Swoole을 확장하는 것을 논의합니다. 주요 초점은 기능과 통합을 향상시키는 것입니다.

이 기사에서는 Swoole의 메모리 풀 사용을 사용하여 효율적인 메모리 관리 및 구성을 통해 메모리 조각화를 줄입니다. 주요 초점은 수영장 내에서 메모리를 활성화, 크기 조정 및 재사용하는 데 중점을 둡니다.

기사는 Swoole의 프로세스 격리 구성, 개선 된 안정성 및 보안 및 문제 해결 방법과 같은 이점에 대해 논의합니다. 문자 수 : 159

이 기사에서는 고성능 응용 프로그램을 위해 PHP에서 Swoole의 비동기 I/O 기능을 사용하는 것에 대해 설명합니다. 설치, 서버 설정 및 최적화 전략을 다룹니다. 워드 수 : 159

이 기사는 버그보고, 기능 제출, 코딩 및 문서 개선을 포함하여 Swoole Project에 기여하는 방법을 설명합니다. 초보자가 기여를 시작하기 위해 필요한 기술과 단계에 대해 논의하고, 압박을 찾는 방법은

Swoole의 원자로 모델은 이벤트 중심의 비 블로킹 I/O 아키텍처를 사용하여 다양한 기술을 통해 성능을 최적화하는 고소도 시나리오를 효율적으로 관리합니다 (159 자)

기사는 비동기 I/O 및 Coroutines를 통한 설계, 구현 및 성능 향상에 중점을 둔 마이크로 서비스 용 Swoole 사용에 대해 논의합니다.

이 기사는 Swoole의 성능 모니터링 및 최적화를위한 도구 및 모범 사례에 대해 설명하고 성능 문제를위한 문제 해결 방법에 대해 설명합니다.
