Diferents exemples de treballs paral·lels
Les diferents maneres d'executar els treballs paral·lels mitjançant el bucle 'for' es mostren en aquesta part del tutorial.
Exemple 1: executeu les tasques paral·leles mitjançant el bucle 'For'.
L'ús del bucle 'for' és la manera més senzilla de realitzar els treballs paral·lels a l'script Bash. Creeu un fitxer Bash amb el següent script que executi el bucle 'for' 10000 vegades i imprimiu un número després de la iteració de 1000 vegades. Aquesta tasca es fa en paral·lel mitjançant el bucle 'for'.
#!/bin/bash
#Iterar el bucle fins arribar a 10000
per val en ` seq 0 1000 10000 ` ;
fer
#Imprimeix cada número 1000
eco $val
fet
La sortida següent apareix després d'executar l'script. Hi ha 10 números entre 0 i 10.000 que s'imprimeixen a la sortida:
Exemple 2: executeu les tasques paral·leles utilitzant el bucle 'For' niat
Creeu un fitxer Bash amb el següent script que executa el bucle 'for' imbricat que genera el número de sèrie utilitzant els caràcters alfabètics de 'A' a 'C' i els números de l'1 al 3. A la primera iteració del bucle exterior i després completant la iteració del bucle interior, 'A1. CodeIgniter', 'A2. Laravel”, i “A3. CakePHP” s'imprimeixen. A la segona iteració del bucle exterior i després de completar la iteració del bucle interior, 'B1. Oracle”, “B2. MySQL' i 'B3. SQL” s'imprimeixen. A la tercera iteració del bucle exterior i després de completar la iteració del bucle interior, 'C1. CSS”, “C2. JQuery' i 'C3. JavaScript” s'imprimeixen.
#Bucle exterior
per alfa en { AC }
fer
#Bucle interior
per nombre en { 1 .. 3 }
fer
#Imprimeix la sortida en funció de la condició
si [ $alfa == 'A' ] ; aleshores
arrayList = ( 'CodeIgniter' 'Laravel' 'CakePHP' )
elif [ $alfa == 'B' ] ; aleshores
arrayList = ( 'Oracle' 'MySQL' 'SQL' )
elif [ $alfa == 'C' ] ; aleshores
arrayList = ( 'CSS' 'JQuery' 'JavaScript' )
ser
eco ' $alfa $número . ${arrayList[$number-1]} '
fet
fet
La sortida següent apareix després d'executar l'script:
Exemple 3: executeu les tasques paral·leles utilitzant el bucle 'For' i l'ordre 'Espera'.
L'ordre 'espera' és una ordre molt útil de Bash que s'utilitza per esperar que un treball completi la tasca quan s'executen diverses tasques. Si s'executen menys treballs, l'ordre 'espera' inicia un treball nou de manera asíncrona. Creeu un fitxer Bash amb el següent script que executa un treball de fons dins del bucle 'for' imbricat. L'ordre 'espera' s'utilitza per esperar per completar tots els processos fills. Les ordres 'data' i 'sleep' s'executen com a procés en segon pla.
#Bucle exteriorper i en { 1 .. 2 }
fer
#Bucle interior
per j en { 1 .. 3 }
fer
si prova ' $(feines | wc -l) ' -ge 2 ; aleshores
espera -n
ser
#Procés de fons
{
data
dormir 1
} &
fet
fet
La sortida següent apareix després d'executar l'script. La data i l'hora actuals s'imprimeixen 6 vegades des del procés de fons per repetir els bucles 'for' imbricats durant 2 × 3 = 6 vegades:
Exemple 4: Diferències entre execucions seqüencials i paral·leles
Creeu un fitxer Bash amb el següent script que mostri les diferències entre l'execució seqüencial i l'execució paral·lela. La funció prn_char() es defineix a l'script per imprimir cinc caràcters amb una durada de 0,5 segons. A continuació, el primer bucle 'for' s'utilitza per executar la funció prn_char() seqüencialment. El segon bucle 'for' s'utilitza per executar la funció prn_char() en paral·lel.
#Definiu una funció per imprimir 5 caràcters amb una durada de 0,5 segonsprn_char ( ) {
per c en Hola; fer
dormir 0.5 ;
eco -n $c ;
fet
eco
}
#Executeu la funció utilitzant el bucle for seqüencialment
per fora en { 1 .. 3 } ; fer
prn_char ' $fora '
fet
#Executeu la funció fent servir el bucle for en paral·lel
per fora en { 1 .. 3 } ; fer
prn_char ' $fora ' &
fet
La sortida següent apareix després d'executar l'script. A la sortida es mostra la diferència entre el recorregut seqüencial i el paral·lel. Aquí, tots els caràcters del bucle 'for' de la funció prn_char() s'imprimeixen alhora en l'execució seqüencial i cada caràcter s'imprimeix tres vegades en l'execució paral·lela:
Conclusió
L'execució dels treballs paral·lels utilitzant el bucle 'for' és necessari per a molts propòsits de programació. En aquest tutorial es mostren els mètodes per executar els treballs paral·lels mitjançant el bucle 'for'.