php yeild,PHP 用 yIEld 实现异步 Web server

php在php5.5的时候引入了generator和coroutine,从核心上提出了一种方法去写不阻塞的IO,当然这和node的event loop还是有比较大的区别的,它的主要理念是:把几个大任务分别分成多个小步轮流执行,有某个小任务在等待系统io的话,就跳过它,执行下一个小任务,这样总体提升了代码的效率。

0x1: yield表达式是什么?

非常简单,描述yield表达式的只有两个关键词: 中断点 和 占位符(自己总结的两点,只属于一种感性的记忆方式,并不是官方给出的专业词汇)。

举个简单的例子:

function gen() {

$tid = (yield 1 + 1);

for ($i = 1; $i <= 10; ++$i) {

echo "This is $tid task iteration $i.\n";

yield $i;

}

}

//$t1是[generator](http://php.net/manual/en/class.generator.php)类的实例(instance)

$t1 = gen();

//取出yield后面的表达式的结构,并没有进行赋值就暂停了当前的操作 `$tid = (yield 1 + 1) `,(特性一:中断点)

$r1 = $t1->current();

//结果为 2

echo $r1;

//将字符'+++'(特性二:占位符),替换到刚才暂停

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值