concurrency - Lua多并发进程

标签 concurrency process lua

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

os.execute("cmd1")
os.execute("cmd2")
os.execute("cmd3")

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

提前致谢

最佳答案

您有多种解决问题的方法:

  1. 根据您的操作系统 shell,您可以使用 & 将任务置于后台。例如:os.execute('(sleep 10&& echo bar) & echo foo')
  2. Lua Posix带有一个 posix.fork() 函数
  3. Lua Lanes在 Lua 中为您提供多线程,因此您可以只在单独的 channel 中使用 os.execute(请注意,Lua 上下文中的“线程”通常指协程而不是 native 操作系统线程)。

关于concurrency - Lua多并发进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9480315/

相关文章:

ios - 使用 NSURLConnection 运行 NSOperation 的多个实例?

java - ConcurrentModificationException,需要澄清

c# - 如何将隐藏的输入传递给 C# 中的另一个程序

process - 如何在 Rust 中存储进程

debugging - 这是什么? '[C]: ?'

javascript - MediaWiki 上的用户自定义 JavaScript 可以调用 Lua 模块吗?

java - ThreadPoolScheduler间隔小于任务的执行时间

python - 有没有办法在 Python 中更改有效的进程名称?

c# - 如何将Lua数据表解析为C#字典或其他可用的类?

无互斥