coroutine.yield()是否返回控制权返回NodeMCU eLua固件中的SDK?

时间:2018-05-23 02:24:19

标签: lua nodemcu

我一直在阅读https://nodemcu.readthedocs.io/en/master/en/lua-developer-faq/#esp8266-specifics,文档说Lua代码需要返回,以便SDK可以运行其他任务:

  

所有其他服务和应用程序处理都分为代码执行块,称为任务。各个任务一次执行一个并运行完成。没有任务永远不会先于另一个任务。

  

Lua库与SDK配合使用,可以对未决事件进行排队,并调用任何已注册的Lua回调例程,然后不间断地运行完成。

然后PiL说yield可以用来暂停函数调用,这可以在以后恢复:

  

协同程序的真正威力源于yield函数,它允许运行的协程暂停执行,以便以后可以恢复。

我的问题是:当执行coroutine.yield(c)时,NodeMCU的eLua实现是否将控件返回到SDK? ...那么用NodeMCU / eLua firwmare实现协作多线程算法是可能的吗?

coroutine.resume(c)在这种情况下如何运作?

0 个答案:

没有答案