协程

PHP 生成器入门

https://juejin.im/entry/5b4c2d76f265da0f697029ad

PHP 在 5.5 版本中引入了「生成器(Generator)」特性,不过这个特性并没有引起人们的注意。在官方的 从 PHP 5.4.x 迁移到 PHP 5.5.x 中介绍说它能以一种简单的方式实现迭代器(Iterator)。

生成器实现通过 yield 关键字完成。生成器提供一种简单的方式实现迭代器,几乎无任何额外开销或需要通过实现迭代器接口的类这种复杂方式实现迭代。

文档提供了一个简单的实例演示这个简单的迭代器,请看下面的代码:

function xrange($start, $limit, $step = 1) {
    for ($i = $start; $i <= $limit; $i += $step) {
        yield $i;
    }
}

让我们将它与无迭代器支持的数组进行比较:

复制代码
foreach 
        

当我们在谈论高并发的时候究竟在谈什么?

什么是高并发?

高并发是互联网分布式系统架构的性能指标之一,它通常是指单位时间内系统能够同时处理的请求数,
简单点说,就是QPS(Queries per second)。

那么我们在谈论高并发的时候,究竟在谈些什么东西呢?

                        

swoole| swoole 协程初体验

date: 2018-5-30 14:31:38
title: swoole| swoole 协程初体验
description: 通过协程的执行初窥 swoole 中协程的调度; 理解协程为什么快; swoole 协程和 go 协程对比

折腾 swoole 协程有一段时间了, 总结一篇入门贴, 希望对新手有帮助.

内容概览:

  • 协程的执行顺序: 初窥 swoole 中协程的调度
  • 协程为什么快: 减少IO阻塞带来的性能损耗
  • swoole 协程和 go 协程对比: 单进程 vs 多线程

协程的执行顺序

先来看看基础的例子:

go(function ()
        

在 PHP 中使用 Promise + co/yield 协程

摘要: 我们知道 JavaScript 自从有了 Generator 之后,就有了各种基于 Generator 封装的协程。其中 hprose 中封装的 Promise 和协程库实现了跟 ES2016 的 async/await 一样的功能,并且更加灵活。我们还知道 PHP 自从 5.5 之后,也引入了 Generator,同样也有了各种基于它封装的 PHP 协程库,hprose 同样也为 PHP 提供的跟 JavaScript 版本类似的 Promise 和协程库。下面我们就来看一下它跟 swoole 结合的效果。

    

PHP 知识补全 —— 生成器 (generator)和协程的实现

先说一些废话

PHP 5.5 以来,新的诸多特性又一次令 PHP 焕发新的光彩,虽然在本文写的时候已是 PHP 7 alpha 2 发布后的一段时间,但此时国内依旧是 php 5.3 的天下。不过我认为新的特性迟早会因为旧的版本的逐渐消失而变得越发重要,尤其是 PHP 7 的正式版出来后,因此本文的目的就是为了在这之前,帮助一些 PHPer 了解一些他们从没有了解的东西。所以打算将以本篇作为博客中 PHP 知识补全 系列文章的开篇。…

    

Swoole2.0协程的使用和源码解读

聊聊Swoole2.0协程

Swoole 2.0正式版发布了。2.0版本最大的更新是增加了对协程(Coroutine)的支持。正式版已同时支持PHP5和PHP7。基于Swoole2.0协程PHP开发者可以已同步的方式编写代码,底层自动进行协程调度,转变为异步IO。解决了传统异步编程嵌套回调的问题。

目前Swoole底层内置的协程客户端组件包括:udpclient、tcpclient、httpclient、redisclient、mysqlclient,基本涵盖了开发者常用的几种通信协议。协程组件只能在服务器的onConnect、onRequest、onReceive、onMessage 回调函数中使用。…