创建Lua线程的有效方法?

时间:2017-03-01 10:30:27

标签: lua

关于通过c ++游戏引擎在Lua中进行线程化的快速问题......

我想知道创建Lua线程的效率。它看起来并不像我们想要做的事情,因为似乎每次创建一个线程时都会有一个Lua块的大副本。所以 -

lua_State *L = luaL_newstate();
luaL_openlibs(L);

lua_State *thread = lua_newthread(L);
luaL_loadfile(thread, "luac1.bin"); // or luaL_loadbuffer or ?
lua_resume(thread, NULL, 0);

新线程总是涉及复制块数据,当线程结束时块丢失我相信。是否有一种有效的方法可以反复生成这些线程,而不是每次都有任何块复制?

[edit]我应该补充一点,这些是线程,因为他们可能希望在结束之前收益。

感谢

1 个答案:

答案 0 :(得分:1)

您正在寻找的是headers: {Accept: '*/*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'}:"在同一州的不同线程之间交换价值。"

lua_xmove

这样你只需加载一次块。线程都共享同一个实例。