三十、Swoole 基础学习笔记 - Swoole 多种方式创建协程
hi,我是温新,一名PHPer
文章基于 Swoole 5.0.1 版本编写。
学习目标:掌握怎么创建协程
说明:本篇文章结合官方文档编写及参考网络资料编写,虽非全部原创,但也是结合了自己的理解,若转载请附带本文 URL,编写不易,持续编写更不易,谢谢!
了解了协程是什么,那么开始创建协程。本篇文章通过 4 种方式来创建协程。
Swoole 中大量使用了短名,因此要需要在
php.ini
配置中开启 Swoole 短名配置:swoole.use_shortname=On
方式一
<?php
// 30-swoole-coroutine-create.php
echo 'start' . PHP_EOL;
Swoole\Coroutine::create(function () {
// 模拟 IO 操作
// 当遇到 IO 等操作时,协程会被挂起
Swoole\Coroutine::sleep(1);
echo 'hello coroutine end' . PHP_EOL;
});
echo 'end' . PHP_EOL;
输出结果
$php 30-swoole-coroutine-create.php
start
end
hello coroutine end
方式二: go 函数创建协程
<?php
echo 'start' . PHP_EOL;
go(function () {
Swoole\Coroutine::sleep(1);
echo 'hello coroutine end' . PHP_EOL;
});
echo 'end' . PHP_EOL;
方式三:协程容器
<?php
echo 'start' . PHP_EOL;
$scheduler = new Swoole\Coroutine\Scheduler;
$scheduler->add(function () {
Co::sleep(1);
echo 'hello coroutine' . PHP_EOL;
});
echo 'end' . PHP_EOL;
$scheduler->start();
方式四:协程容器-短名称创建
echo 'start' . PHP_EOL;
Co\run(function () {
Co::sleep(1);
echo 'hello coroutine' . PHP_EOL;
});
echo 'end' . PHP_EOL;
本篇文章学习了怎么创建协程,下篇文章将学习协程 API。
请登录后再评论