【发布时间】:2013-12-03 05:09:06
【问题描述】:
我的总体想法是,单线程应用程序(Lua 解释器)总是会降低依赖它的多线程应用程序(通用 C++ 应用程序)的性能。
为了规避这个问题,我正在考虑在解释器上采用异步方法,同时保持 C++ 应用程序多线程,这基本上意味着基于我的方法,Lua 解释器应该以某种方式将整个脚本/文件推送到调度程序中一种异步方法(无需等待结果),这取决于精心设计的 C++ 多线程消息传递系统来保持一切顺序。
通常的关系是C/C++ function <-> Lua(采用顺序方法);我想要C++ messaging system <-> entire Lua script 之类的东西。
我也对任何可以解决这个问题的方法持开放态度,并真正帮助 Lua 和专为多线程设计的 C++ 应用程序之间的混合。
这种方法是否可以通过某些软件实现?
编辑
我需要一些“用户证明”,我需要在 C++/Lua API 设计中实现这种行为。
【问题讨论】:
-
谁在推动编排:C++ 还是 LUA?如果 C++ 调用 LUA,你不能使用许多解释器实例吗?如果 LUA 调用 C++,您可以为某些方法生成一个线程并立即返回。如果您不需要同步,则可以将其简化为 LUA 的简单即发即弃。
-
@Pragmateek 我应该为我的 C++ 多线程应用程序提供 Lua 作为脚本解决方案,因此“流程”的关键部分是从 Lua 到 C++。 “一劳永逸”听起来很像
std::async在 C++11 下的工作方式,这对我来说很有趣,你能详细介绍一下如何在 Lua 中做到这一点以及机制是什么?
标签: c++ c multithreading asynchronous lua