血染瞳孔吧 关注:2贴子:78
  • 0回复贴,共1

ruby1.9新特性“纤程”

只看楼主收藏回复

Fiber
用于提供一个非独占的轻量型纤程(即Fiber),也就是其他编程语言中的协程/半协程。
一个纤程的环境通常不会改变,除非做出了明确的说明。纤程也是要进行承接的,比如Fiber#resume(即程序出现错误后继续运行下一行的语句)是母纤程,而Fiber则是子纤程(不过这个母子并没有从属关系)。不遵循由母纤程到子纤程的规则的过程是不被允许的(比如由子纤程到母纤程的过渡),这会导致出现一个FibberError(纤程错误)的异常。以下两条是可以被允许的:
Fiber#resume 将环境切换到它的子纤程。
Fiber.yield 将环境切换到它的母纤程。
当然,这里的母子关系是动态的,并且在环境切换回母纤程的同时,这种关系即告解除。
当一个纤程结束,环境将会自动切换回母纤程。
感谢说明文件汉化者


IP属地:河北1楼2016-02-18 17:53回复