배열이 PHP의 본질이라면, 배열을 다룰 줄 모른다면 아예 PHP를 사용할 수 없다고 볼 수 없습니다. Swoole의 코루틴에도 동일하게 적용됩니다. 코루틴을 이해하지 못하고 Swoole을 사용한다면 맹목적으로 사용하는 것입니다.
우선 Swoole은 명령줄(Cli) 모드에서만 실행할 수 있기 때문에 개발과 디버깅에는 가 아닌 명령줄을 사용합니다. > php-fpm/apache
등. php-fpm/apache
等。
在 Swoole 中,我们可以使用`SwooleCoroutine::create()`
`SwooleCoroutine::create()`
를 사용하여 코루틴을 만들거나 약어 `go()`를 사용할 수도 있습니다. Swoole 코루틴에 대한 첫 만남
go(function(){ go(function(){ echo 0, PHP_EOL; }); echo 1, PHP_EOL; }); go(function(){ echo 2, PHP_EOL; }); go(function(){ echo 3, PHP_EOL; });
0 1 2 3
Swoole\Runtime::enableCoroutine(); // 开启一键协程化 function work() { $pdo = new \PDO('mysql:host=127.0.0.1;dbname=db_test', 'root', 'root'); $pdo->exec('select SLEEP(0.1)'); // 模拟sql需要执行 100ms 的情况 } $time = microtime(true); for($i = 0; $i < 10; ++$i) { work(); } echo 'time: ', (microtime(true) - $time), 's', PHP_EOL; $time = microtime(true); for($i = 0; $i < 10; ++$i) { go('work'); } swoole_event_wait(); // 等待所有协程执行完 echo 'time: ', (microtime(true) - $time), 's', PHP_EOL;
time: 1.0326268672943s time: 0.10734605789185s
위 내용은 Swoole 코루틴과 기존 fpm 동기화 모드 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!