This comment is a bit incoherent, so I'm not sure if I'm responding correctly at all. Your C/C++ program can contain any number of Lua states, and can also contain an infrastructure for passing messages between these states. The states themselves are single-threaded. Within a single Lua state, you can have any number of coroutines, but these do not work like JVM threads or goroutines; they must be scheduled explicitly.
Comments
This comment is a bit incoherent, so I'm not sure if I'm responding correctly at all. Your C/C++ program can contain any number of Lua states, and can also contain an infrastructure for passing messages between these states. The states themselves are single-threaded. Within a single Lua state, you can have any number of coroutines, but these do not work like JVM threads or goroutines; they must be scheduled explicitly.