Erinevad paralleelsete tööde näited
Selles õpetuse osas on näidatud erinevad viisid paralleelsete tööde käitamiseks, kasutades tsüklit 'for'.
Näide 1: Käivitage paralleelsed tööd, kasutades tsüklit 'For'.
'For' tsükli kasutamine on lihtsam viis paralleelsete tööde tegemiseks Bashi skriptis. Looge Bashi fail järgmise skriptiga, mis käivitab tsükli 'for' 10 000 korda ja printige number pärast 1000 korda iteratsiooni. Seda ülesannet tehakse paralleelselt, kasutades tsüklit 'for'.
#!/bin/bash
#Itereeri tsüklit, kuni jõuab 10 000-ni
jaoks val sisse ` järg 0 1000 10 000 ` ;
teha
#Prindi iga 1000. number
kaja $val
tehtud
Pärast skripti täitmist ilmub järgmine väljund. Väljundis on 10 numbrit vahemikus 0 kuni 10000:
Näide 2: Käivitage paralleelsed tööd, kasutades pesastatud tsüklit 'For'.
Looge Bash-fail järgmise skriptiga, mis käivitab pesastatud tsükli, mis genereerib seerianumbri, kasutades tähemärke A-st C-ni ja numbreid 1 kuni 3. Välise tsükli esimeses iteratsioonis ja pärast seda lõpetades sisemise tsükli iteratsiooni, 'A1. CodeSigniter“, „A2. Laravel” ja „A3. CakePHP” on trükitud. Välise tsükli teises iteratsioonis ja pärast sisemise tsükli iteratsiooni lõpetamist kuvatakse „B1. Oracle“, „B2. MySQL“ ja „B3. SQL” trükitakse. Välise tsükli kolmandas iteratsioonis ja pärast sisemise tsükli iteratsiooni lõpetamist 'C1. CSS“, „C2. JQuery” ja „C3. JavaScript” on trükitud.
#Väline silmus
jaoks alfa sisse { A..C }
teha
#Sisemine silmus
jaoks number sisse { 1 .. 3 }
teha
#Prindi väljund tingimuse alusel
kui [ $alfa == 'A' ] ; siis
arrayList = ( 'CodeIgniter' 'Laravel' 'CakePHP' )
elif [ $alfa == 'B' ] ; siis
arrayList = ( 'Oraakel' 'MySQL' 'SQL' )
elif [ $alfa == 'C' ] ; siis
arrayList = ( 'CSS' 'JQuery' 'JavaScript' )
olla
kaja ' $alfa $number . ${arrayList[$number-1]} '
tehtud
tehtud
Pärast skripti käivitamist kuvatakse järgmine väljund:
Näide 3: Käivitage paralleelsed tööd, kasutades käsku 'For' Loop ja 'Wait'.
Käsk 'oota' on väga kasulik Bashi käsk, mida kasutatakse ühe töö ootamiseks ülesande täitmiseks, kui töötab mitu tööd. Kui töötab vähem töid, käivitab käsk 'oota' uue töö asünkroonselt. Looge Bashi fail järgmise skriptiga, mis käivitab taustatöö pesastatud tsüklis 'for'. Käsku 'oota' kasutatakse kõigi alamprotsesside lõpuleviimise ootamiseks. Käsud 'kuupäev' ja 'unerežiim' käivitatakse taustaprotsessina.
#Väline silmusjaoks i sisse { 1 .. 2 }
teha
#Sisemine silmus
jaoks j sisse { 1 .. 3 }
teha
kui test ' $(töökohad | wc -l) ' -ge 2 ; siis
oota -n
olla
#Taustaprotsess
{
kuupäeva
magama 1
} &
tehtud
tehtud
Pärast skripti täitmist ilmub järgmine väljund. Praegune kuupäev ja kellaaeg prinditakse taustprotsessist kuus korda, et korrata pesastatud for-silmuseid 2 × 3 = 6 korda:
Näide 4: Erinevused järjestikuste ja paralleelsete jooksude vahel
Looge järgmise skriptiga Bash-fail, mis näitab järjestikuse käitamise ja paralleelkäitamise erinevusi. Funktsioon prn_char() on skriptis määratletud viie tähemärgi printimiseks 0,5 sekundi pikkusega. Järgmisena kasutatakse esimest 'for' tsüklit funktsiooni prn_char() järjestikuseks käivitamiseks. Teist 'for' tsüklit kasutatakse funktsiooni prn_char() paralleelseks käitamiseks.
#Defineerige funktsioon 5 tähemärgi printimiseks 0,5 sekundi jooksulprn_char ( ) {
jaoks c sisse Tere; teha
magama 0.5 ;
kaja -n $c ;
tehtud
kaja
}
#Käivita funktsioon järjestikku kasutades for tsüklit
jaoks välja sisse { 1 .. 3 } ; teha
prn_char ' $välja '
tehtud
#Käivita funktsioon tsüklit kasutades paralleelselt
jaoks välja sisse { 1 .. 3 } ; teha
prn_char ' $välja ' &
tehtud
Pärast skripti täitmist kuvatakse järgmine väljund. Väljundis näidatakse järjestikuse ja paralleelse jooksu erinevus. Siin prinditakse kõik funktsiooni prn_char() tsükli 'for' märgid järjestikuses käitamises korraga ja iga tähemärk trükitakse paralleelses käitamises kolm korda:
Järeldus
Paralleelsete tööde käivitamine 'for' tsükliga on vajalik paljudel programmeerimisel. Selles õpetuses on näidatud paralleelsete tööde käitamise meetodid 'for' tsükliga.