在bash线程?

| 是否可以在bash脚本中使用线程。我在Java中有一个驱动程序类,试图同时运行多个实例。我知道做到这一点的唯一方法是在bash中创建线程,但是我不确定那是否有可能。任何帮助,将不胜感激     
已邀请:
        Bash本身不支持线程,但是您可以在后台启动多个Java进程,例如:
java myprog &
java myprog &
java myprog &
除了具有线程管理实用程序的Python或Ruby之外,您还可以等待其他每一个完成并收集输出/退出状态等。 编辑:从@CédricJulien借用use1ѭ的建议,这是一个更详尽的示例。鉴于此“ 2”程序:
public class MyProg {
    public static void main(String[] args) {
        System.exit(Integer.parseInt(args[0]));
    }
}
您可以编写以下“ 4”脚本来并行启动该脚本的多个实例:
#!/bin/bash
set -o errexit

java MyProg 1 &
pid1=$!
java MyProg 0 &
pid2=$!
java MyProg 2 &
pid3=$!

wait $pid1 && echo \"pid1 exited normally\" || echo \"pid1 exited abnormally with status $?\"
wait $pid2 && echo \"pid2 exited normally\" || echo \"pid2 exited abnormally with status $?\"
wait $pid3 && echo \"pid3 exited normally\" || echo \"pid3 exited abnormally with status $?\"
其输出为:
pid1 exited abnormally with status 1
pid2 exited normally
pid3 exited abnormally with status 2
    
        您将无法启动某些“ bash线程”,但是您可以在bash中启动子进程,只需在命令后使用
&
,它将在后台进程中启动它。 启动您的进程后,请致电1,以等待它们完成。 尝试这个
first_command &
second_command &

wait
    

要回复问题请先登录注册