本文地址:http://www.laruence.com/2015/05/28/3038.html转载文章英文原文地址:Cooperative multitasking using coroutines (in PHP!)本文是我依照OSChina上的一个翻译(PHP 使用协同程序实现合作多任务)版本, 做了一些完善, 校对而成.(原翻译稍微有点晦涩, 但是依然是一个伟大的工作, 鸣谢)PHP5.5一个比较好的新功能是加入了对迭代生成器和协程的支持.对于生成器,PHP的文档和各种其他的博客文章已经有了非常详细的讲解.协程相对受到的关注就少了,因为协程虽然有很强大的功能但相对比较复杂, 也比较难被理解,解释起来也比较困难.这篇文章将尝试通过介绍如何使用协程来实施任务调度, 来解释在PHP中的协程.我将在前三节做一个简单的背景介绍.如果你已经有了比较好的基础,可以直接跳到“协同多任务处理”一节.迭代生成器(迭代)生成器也是一个函数,不同的是这个函数的返回值是依次返回,而不是只返回一个单独的值.或者,换句话说,生成器使你能更方便的实现了迭代器接口.下面通过实现一个xrange函数来简单说明:php
function xrange($start, $end, $step = 1) {
for ($i = $start; $i <= $end; $i += $step) {
...
继续阅读
(92)