何时使用光纤以及何时在Tarantool中使用协同程序?

dgo*_*o.a 6 tarantool

在Tar​​antool中,当Lua代码作者希望Tarantool安排执行时,会使用光纤吗?当Lua代码作者希望控制执行时,是否使用了协同例程(在Tarantool/LuaJIT过程中)?

Vas*_*kov 6

在Tar​​antool中,纤维是协同程序的同义词.纤维更多地集成到Tarantool I/O等,你应该使用它们而不是lua协同程序.我们建议你总是使用我们的纤维,而不是Lua协同,因为它们更强大.我们的整个I/O堆栈与它们集成在一起:套接字,文件,net.box,mysql,postgresql等.

链接到文档:http://tarantool.org/doc/reference/fiber.html

可以使用协同程序的一些任务,比如迭代器.同时使用协同程序和纤维是完全有效的,但这可能会引起混淆.一个臭名昭着的协同产量可能失败attempt to yield across C-call boundary,而纤维在这种情况下工作.