Lua多个并发进程

gre*_*ven 2 concurrency lua process

我想从lua脚本中同时执行多个进程,例如

os.execute("cmd1")
os.execute("cmd2")
os.execute("cmd3")
Run Code Online (Sandbox Code Playgroud)

其中cmd1,2和3持续运行进程.当我按上述方式执行此操作时,cmd2和3仅在cmd1完成时运行.有什么想法吗?我应该使用"fork"或类似的东西吗?

提前致谢

jpj*_*obs 5

你有几个问题的解决方案:

  1. 根据您的操作系统shell,您可能&会将任务放入后台.例如:os.execute('(sleep 10&& echo bar) & echo foo')
  2. Lua Posix带有一个posix.fork()功能
  3. Lua Lanes在Lua中为您提供多线程,因此您可以在单独的通道中使用os.execute(请注意,Lua上下文中的'threads'通常是指coroutines而不是本机OS线程).