
协程
oyw5201314ck
这个作者很懒,什么都没留下…
展开
-
协程之我见
在Python中我们知道关键字yield可以用来实现生成器,我们可以在函数A中访问生成器函数B,待B返回一个结果后,我们可以再次访问B,而B会延续之前的执行状态;这2个函数就像是2个线程一样,在宏观上看来在并行执行;但是与线程不同的是,线程的调度是由操作系统来完成的,对用户包括开发者来说是完全透明的,但是在这里2个函数的控制权切换却是由我们来完成的。从这里,我们就接触到协程的雏形。def A():...原创 2018-02-01 11:19:30 · 279 阅读 · 0 评论 -
协程踩坑记1
今天尝试着使用ucontext来实现一个轻量级的协程库,结果运行测试程序时,发生了段错误通过gdb调试发现错误是Cannot access memory at address,不过这个信息对我的帮助太小然后我加入了一些调试用的输出语句,就找到了真正的错误原因:我在创建一个协程时,需要传入一个执行函数,我对此函数进行了封装,作为makecontext的函数入口,这个封装函数会在原函数执行完毕后,做一...原创 2018-02-01 18:21:42 · 392 阅读 · 0 评论