Verschiedene Beispiele für parallele Jobs
In diesem Teil des Tutorials werden die verschiedenen Möglichkeiten zum Ausführen der parallelen Jobs mithilfe der „for“-Schleife gezeigt.
Beispiel 1: Führen Sie die parallelen Jobs mithilfe der „For“-Schleife aus
Die Verwendung der „for“-Schleife ist die einfachere Möglichkeit, die parallelen Aufgaben im Bash-Skript auszuführen. Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das die „for“-Schleife 10.000 Mal ausführt und nach 1.000 Iterationen eine Zahl ausgibt. Diese Aufgabe wird parallel mithilfe der „for“-Schleife erledigt.
#!/bin/bash
#Iterieren Sie die Schleife, bis 10000 erreicht ist
für val In ` seq 0 1000 10000 ` ;
Tun
#Drucken Sie jede 1000. Zahl
Echo $val
Erledigt
Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Es gibt 10 Zahlen zwischen 0 und 10000, die in der Ausgabe gedruckt werden:
Beispiel 2: Führen Sie die parallelen Jobs mithilfe der verschachtelten „For“-Schleife aus
Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das die verschachtelte „for“-Schleife ausführt, die die Seriennummer mithilfe der alphabetischen Zeichen von „A“ bis „C“ und der Zahlen 1 bis 3 generiert. In der ersten Iteration der äußeren Schleife und danach Abschluss der Iteration der inneren Schleife: „A1. CodeIgniter“, „A2. Laravel“ und „A3. CakePHP“ werden gedruckt. In der zweiten Iteration der äußeren Schleife und nach Abschluss der Iteration der inneren Schleife lautet „B1. Oracle“, „B2. MySQL“ und „B3. SQL“ werden gedruckt. In der dritten Iteration der äußeren Schleife und nach Abschluss der Iteration der inneren Schleife lautet „C1. CSS“, „C2. JQuery“ und „C3. JavaScript“ werden gedruckt.
#Äußere Schleife
für Alpha In { A..C }
Tun
#Innere Schleife
für Nummer In { 1 .. 3 }
Tun
#Drucken Sie die Ausgabe basierend auf der Bedingung
Wenn [ $alpha == 'A' ] ; Dann
Anordnungsliste = ( „CodeIgniter“ „Laravel“ „KuchenPHP“ )
elif [ $alpha == 'B' ] ; Dann
Anordnungsliste = ( 'Orakel' „MySQL“ „SQL“ )
elif [ $alpha == 'C' ] ; Dann
Anordnungsliste = ( „CSS“ „JQuery“ „JavaScript“ )
Sei
Echo ' $alpha $Anzahl . ${arrayList[$number-1]} '
Erledigt
Erledigt
Nach der Ausführung des Skripts erscheint folgende Ausgabe:
Beispiel 3: Führen Sie die parallelen Jobs mit der „For“-Schleife und dem „Wait“-Befehl aus
Der Befehl „wait“ ist ein sehr nützlicher Befehl von Bash, der verwendet wird, um darauf zu warten, dass ein Job die Aufgabe abschließt, wenn mehrere Jobs ausgeführt werden. Wenn weniger Jobs ausgeführt werden, startet der Befehl „wait“ asynchron einen neuen Job. Erstellen Sie eine Bash-Datei mit dem folgenden Skript, das einen Hintergrundjob innerhalb der verschachtelten „for“-Schleife ausführt. Der Befehl „wait“ wird verwendet, um auf den Abschluss aller untergeordneten Prozesse zu warten. Die Befehle „date“ und „sleep“ werden als Hintergrundprozess ausgeführt.
#Äußere Schleifefür ich In { 1 .. 2 }
Tun
#Innere Schleife
für J In { 1 .. 3 }
Tun
Wenn prüfen ' $(jobs | wc -l) ' -ge 2 ; Dann
Warten -N
Sei
#Hintergrundprozess
{
Datum
schlafen 1
} &
Erledigt
Erledigt
Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Das aktuelle Datum und die aktuelle Uhrzeit werden 6 Mal vom Hintergrundprozess gedruckt, um die verschachtelten „for“-Schleifen 2×3=6 Mal zu durchlaufen:
Beispiel 4: Unterschiede zwischen sequentiellen und parallelen Läufen
Erstellen Sie mit dem folgenden Skript eine Bash-Datei, die die Unterschiede zwischen der sequentiellen Ausführung und der parallelen Ausführung zeigt. Die Funktion prn_char() ist im Skript so definiert, dass sie fünf Zeichen mit einer Dauer von 0,5 Sekunden druckt. Als nächstes wird die erste „for“-Schleife verwendet, um die Funktion prn_char() sequentiell auszuführen. Die zweite „for“-Schleife wird verwendet, um die Funktion prn_char() parallel auszuführen.
#Definieren Sie eine Funktion zum Drucken von 5 Zeichen mit einer Dauer von 0,5 Sekundenprn_char ( ) {
für C In Hallo; Tun
schlafen 0,5 ;
Echo -N $c ;
Erledigt
Echo
}
#Führen Sie die Funktion nacheinander mit der for-Schleife aus
für aus In { 1 .. 3 } ; Tun
prn_char ' $aus '
Erledigt
#Führen Sie die Funktion parallel mit der for-Schleife aus
für aus In { 1 .. 3 } ; Tun
prn_char ' $aus ' &
Erledigt
Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Der Unterschied zwischen dem sequentiellen Lauf und dem parallelen Lauf wird in der Ausgabe angezeigt. Hier werden alle Zeichen der „for“-Schleife der Funktion prn_char() gleichzeitig im sequentiellen Lauf und jedes Zeichen im parallelen Lauf dreimal gedruckt:
Abschluss
Für viele Programmierzwecke ist die Ausführung der parallelen Jobs mithilfe der „for“-Schleife erforderlich. In diesem Tutorial werden die Methoden zum Ausführen der parallelen Jobs mithilfe der „for“-Schleife gezeigt.