本文从WordPress迁移而来, 查看全部WordPress迁移文章
项目地址:https://github.com/scaugrated/groutine
groutine是一个基于ucontext实现的协程库,实现的协程原语包括CoCreate, CoResume, CoYield
使用共享栈来优化了协程的栈空间分配。
目前共享栈的实现还比较简单,每次协程切换都会发生memcpy。
实际分配给每个协程的栈空间不需要1024 1024 8这么大。下一步的优化是将共享栈切分成更小的内存块,减少共享冲突的次数。
参考了云风的协程库实现
update: 2017-05-21
已完成共享栈的优化,并且修复了不少bug,同时添加了一个简单的测试用例