【发布时间】:2016-07-09 05:28:22
【问题描述】:
在 Tarantool 中,当 Lua 代码作者希望 Tarantool 安排执行时,是否使用了 Fiber?当 Lua 代码作者想要控制执行时,是否使用协程(在 Tarantool/LuaJIT 进程中)?
【问题讨论】:
-
在 Tarantool 中,纤维是协程的同义词。我们建议您始终使用我们的纤维,而不是 Lua 协程,因为它们更强大。我们的整个 I/O 堆栈都与它们集成在一起:套接字、文件、net.box、mysql、postgresql 等。
-
协程可以用于一些任务,比如迭代器。同时使用协程和纤程是完全有效的,但这可能会导致混淆。协程收益可能会因臭名昭著的
attempt to yield across C-call boundary而失败,而纤程在这种情况下工作。
标签: tarantool