Ste*_*let 35
Bash本身不支持线程,但您可以在后台启动多个java进程,如:
java myprog &
java myprog &
java myprog &
Run Code Online (Sandbox Code Playgroud)
除了您可能会查看具有线程管理实用程序的Python或Ruby之外的任何内容,您可以等待每个完成并收集输出/退出状态等.
编辑:借用@CédricJulien的建议来使用wait
,这是一个更全面的例子.鉴于此MyProg.java
计划:
public class MyProg {
public static void main(String[] args) {
System.exit(Integer.parseInt(args[0]));
}
}
Run Code Online (Sandbox Code Playgroud)
您可以编写以下bash-threads.sh
脚本来并行启动它的多个实例:
#!/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 $?"
Run Code Online (Sandbox Code Playgroud)
它的输出是:
pid1 exited abnormally with status 1
pid2 exited normally
pid3 exited abnormally with status 2
Run Code Online (Sandbox Code Playgroud)
Céd*_*ien 32
你将无法启动一些"bash线程",但你可以在bash中启动子&
进程,只需使用命令之后,它将在后台进程中启动它.
wait
启动流程后调用a 等待它们完成.
试试这个
first_command &
second_command &
wait
Run Code Online (Sandbox Code Playgroud)