504 Stimmen

Wie führt man mehrere Programme parallel in einem Bash-Skript aus?

Ich versuche, eine .sh-Datei der viele Programme ausführt gleichzeitig

Ich habe dies versucht

prog1 
prog2

Aber das führt prog1 aus, wartet dann, bis prog1 endet und startet dann prog2...

Wie kann ich sie also parallel betreiben?

-2voto

Fil Punkte 31

Mit bashj ( https://sourceforge.net/projects/bashj/ ), sollten Sie in der Lage sein, nicht nur mehrere Prozesse (wie von anderen vorgeschlagen), sondern auch mehrere Fäden in einer JVM, die von Ihrem Skript gesteuert wird. Aber natürlich erfordert dies ein Java JDK. Threads verbrauchen weniger Ressourcen als Prozesse.

Hier ist ein funktionierender Code:

#!/usr/bin/bashj

#!java

public static int cnt=0;

private static void loop() {u.p("java says cnt= "+(cnt++));u.sleep(1.0);}

public static void startThread()
{(new Thread(() ->  {while (true) {loop();}})).start();}

#!bashj

j.startThread()

while [ j.cnt -lt 4 ]
do
  echo "bash views cnt=" j.cnt
  sleep 0.5
done

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X