process-->thread-->coroutine
摘要:
在现实世界中,基本是是按着这样的顺序演化:process-->thread-->coroutine/fiber其实是一个context切换开销从大到小的演化,process切换开销最大,需要切换地址空间,所有的CPU状态,所有其他资源thread切换只需要切换CPU状态,当然是大部分的CPU状态,而coroutine切换,只需要切换很少的CPU状态,而且全部都在用户地址空间运行,不需要到内核空间。当然,切换coroutine的开销还是比一次函数调用大很多,其实函数调用也是一个cpu状态的切换,不过这个状态要少得多,在x86 windows 上,甚至不必保存所有的寄存器状态(EAX/ 阅读全文
posted @ 2008-12-11 23:50 能发波 阅读(113) 评论(0) 推荐(0)