在Lua 5.1中,从不让一个协程正常结束有多糟糕?换句话说,如果一个协程产生但是我从未恢复它,它是否会在程序完成之前留下很多状态?
cor=coroutine.wrap(somefunc) while true do done=cor() if done then -- coroutine exited with "return true" break else -- coroutine yielded with "coroutine.yield(false)" if some_condition then break end end end function somefunc() -- do something coroutine.yield(false) -- do some more return true end
根据上面伪代码中的some_condition,协程可能永远不会被恢复,因此可能永远不会正确地“结束”.
我可以这样做几十个协同程序而不必担心吗?将协同程序置于此状态是否安全?这个很贵吗?