对yield的一点理解

212 阅读1分钟
听好多人都在说协程的好处, 作为一个渴望知识进步的小白也不能落后他人

这里讲一下我理解的协程 ,我们的程序是按顺序执行的 :

 一般的开发工作是将一小段功能封装成一个方法(function) 调用这个方法将执行结果 return 给调用者 ,由调用者决定这个数据怎么使用,

这样是为了更好的代码复用, 但是问题来了这只是简单的代码复用 ,如果我们要重复调用这个方法,会造成一些不必要的资源浪费

说的白话一点 我执行一段代码要执行很长时间 ,我不想等到这个方法执行完在return 我想要一个在代码执行中也能返回数据, 这个方法就是 协程(yield);

为什么有人称yield是用户态的进程/线程,是因为我们的程序执行cpu会为每个进程/线程 分配一个时间片,这个是为了防止一个 进程/线程 长时间占用cpu 导致其他 进程/线程 不可用 , 协程就是由用户决定调度任务

参考地址: nikic.github.io/2012/12/22/…