PHP7中如何实现协程的详细方法,能否详细解释一下?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3256个文字,预计阅读时间需要14分钟。
前言:相信大家都听说过协程这个概念吧。但有些同学对这个概念似懂非懂,不知道如何实现、如何使用,甚至有人误以为yield就是协程!
我始终相信,如果你无法准确界定协程这个概念,那么你很难真正理解它。
前言
相信大家都听说过『协程』这个概念吧。
但是有些同学对这个概念似懂非懂,不知道怎么实现,怎么用,用在哪,甚至有些人认为yield就是协程!
我始终相信,如果你无法准确地表达出一个知识点的话,我可以认为你就是不懂。
如果你之前了解过利用PHP实现协程的话,你肯定看过鸟哥的那篇文章:在PHP中使用协程实现多任务调度| 风雪之隅
鸟哥这篇文章是从国外的作者翻译来的,翻译的简洁明了,也给出了具体的例子了。
我写这篇文章的目的,是想对鸟哥文章做更加充足的补充,毕竟有部分同学的基础还是不够好,看得也是云头雾里的。
什么是协程
先搞清楚,什么是协程。
你可能已经听过『进程』和『线程』这两个概念。
进程就是二进制可执行文件在计算机内存里的一个运行实例,就好比你的.exe文件是个类,进程就是new出来的那个实例。
进程是计算机系统进行资源分配和调度的基本单位(调度单位这里别纠结线程进程的),每个CPU下同一时刻只能处理一个进程。
所谓的并行,只不过是看起来并行,CPU事实上在用很快的速度切换不同的进程。
进程的切换需要进行系统调用,CPU要保存当前进程的各个信息,同时还会使CPUCache被废掉。
所以进程切换不到费不得已就不做。
本文共计3256个文字,预计阅读时间需要14分钟。
前言:相信大家都听说过协程这个概念吧。但有些同学对这个概念似懂非懂,不知道如何实现、如何使用,甚至有人误以为yield就是协程!
我始终相信,如果你无法准确界定协程这个概念,那么你很难真正理解它。
前言
相信大家都听说过『协程』这个概念吧。
但是有些同学对这个概念似懂非懂,不知道怎么实现,怎么用,用在哪,甚至有些人认为yield就是协程!
我始终相信,如果你无法准确地表达出一个知识点的话,我可以认为你就是不懂。
如果你之前了解过利用PHP实现协程的话,你肯定看过鸟哥的那篇文章:在PHP中使用协程实现多任务调度| 风雪之隅
鸟哥这篇文章是从国外的作者翻译来的,翻译的简洁明了,也给出了具体的例子了。
我写这篇文章的目的,是想对鸟哥文章做更加充足的补充,毕竟有部分同学的基础还是不够好,看得也是云头雾里的。
什么是协程
先搞清楚,什么是协程。
你可能已经听过『进程』和『线程』这两个概念。
进程就是二进制可执行文件在计算机内存里的一个运行实例,就好比你的.exe文件是个类,进程就是new出来的那个实例。
进程是计算机系统进行资源分配和调度的基本单位(调度单位这里别纠结线程进程的),每个CPU下同一时刻只能处理一个进程。
所谓的并行,只不过是看起来并行,CPU事实上在用很快的速度切换不同的进程。
进程的切换需要进行系统调用,CPU要保存当前进程的各个信息,同时还会使CPUCache被废掉。
所以进程切换不到费不得已就不做。

