Lua加载屏幕-库罗汀vs C线程



现在我使用类似的方法来加载资源

http://www.lua.org/pil/9.4.html

    读取文件1
  • 读取文件2

Pro:使用纯lua,简单。

Contra:它不是并发的,每个文件读取阻塞渲染,然后才进入下一个。此外,如果你需要处理数据(例如,从源代码创建着色器程序,或解码图片并创建纹理),你需要将其传递给C并将其带回来。

在过去我使用C线程调用lua函数,然后他们完成加载文件。

Pro:它是并发的。可以在c++端处理加载的数据

Contra:您需要将加载的数据传递回Lua

也许我在这两个方面都做错了,有更好的方法来加载和处理Lua + C数据?

我将使用混合方法,使用两种类型的线程:

  • 处理从消息队列中读取并实际加载资源的线程
  • Loader线程运行Lua通过排队请求异步处理文件。

通过添加更多特定类型的线程,它可以很好地扩展。

当然,您应该通过分析当前的实现来确保这是值得的。使用线程和消息队列会增加更多的C/c++代码。毕竟这只是一个加载屏幕;)

最新更新