Bash Pekerjaan Paralel Menggunakan For Loop

Bash Pekerjaan Paralel Menggunakan For Loop



Banyak cara yang ada di Linux untuk menjalankan banyak perintah atau skrip Bash secara paralel. Salah satu caranya adalah dengan menggunakan loop 'untuk' di skrip Bash untuk menjalankan pekerjaan paralel. Loop ini sangat berguna untuk menjalankan pekerjaan paralel menggunakan perintah 'seq'. Berbagai cara mengeksekusi pekerjaan paralel menggunakan loop 'untuk' ditunjukkan dalam tutorial ini.

Berbagai Contoh Pekerjaan Paralel

Berbagai cara menjalankan tugas paralel menggunakan loop 'untuk' ditunjukkan di bagian tutorial ini.

Contoh 1: Jalankan Pekerjaan Paralel Menggunakan 'For' Loop

Menggunakan loop 'untuk' adalah cara yang lebih sederhana untuk melakukan pekerjaan paralel dalam skrip Bash. Buat file Bash dengan skrip berikut yang menjalankan loop 'untuk' 10.000 kali dan cetak angka setelah iterasi 1.000 kali. Tugas ini dilakukan secara paralel menggunakan loop 'untuk'.







#!/bin/bash

#Iterasi loop hingga mencapai 10.000

untuk val di dalam ` urutan 0 1000 10.000 ` ;

Mengerjakan

#Cetak setiap 1000 angka

gema $val

Selesai

Output berikut muncul setelah menjalankan skrip. Ada 10 angka antara 0 dan 10000 yang dicetak di output:



  p3



Contoh 2: Jalankan Pekerjaan Paralel Menggunakan Pengulangan 'For' Bersarang

Buat file Bash dengan skrip berikut yang menjalankan loop 'untuk' bersarang yang menghasilkan nomor seri menggunakan karakter alfabet dari 'A' ke 'C' dan angka 1 hingga 3. Pada iterasi pertama dari loop luar dan setelahnya menyelesaikan iterasi dari loop dalam, “A1. CodeIgniter”, “A2. Laravel', dan 'A3. CakePHP” dicetak. Pada iterasi kedua dari loop luar dan setelah menyelesaikan iterasi dari loop dalam, “B1. Peramal”, “B2. MySQL”, dan “B3. SQL” dicetak. Pada iterasi ketiga dari loop luar dan setelah menyelesaikan iterasi dari loop dalam, “C1. CSS”, “C2. JQuery', dan 'C3. JavaScript” dicetak.





#Lingkaran luar

untuk alfa di dalam { A..C }

Mengerjakan

# Putaran dalam

untuk nomor di dalam { 1 .. 3 }

Mengerjakan

#Cetak keluaran berdasarkan kondisi

jika [ $alfa == 'A' ] ; Kemudian

daftar larik = ( 'CodeIgniter' 'Laravel' 'KuePHP' )

elif [ $alfa == 'B' ] ; Kemudian

daftar larik = ( 'Peramal' 'MySQL' 'SQL' )

elif [ $alfa == 'C' ] ; Kemudian

daftar larik = ( 'CSS' 'JQuery' 'JavaScript' )

menjadi

gema ' $alfa $ nomor . ${arrayList[$angka-1]} '

Selesai

Selesai

Output berikut muncul setelah mengeksekusi skrip:



Contoh 3: Jalankan Pekerjaan Paralel Menggunakan Perintah 'For' Loop dan 'Wait'.

Perintah 'tunggu' adalah perintah Bash yang sangat berguna yang digunakan untuk menunggu satu pekerjaan menyelesaikan tugas ketika banyak pekerjaan sedang berjalan. Jika lebih sedikit pekerjaan yang dijalankan, perintah 'tunggu' akan memulai pekerjaan baru secara asinkron. Buat file Bash dengan skrip berikut yang menjalankan pekerjaan latar belakang di dalam loop 'untuk' bersarang. Perintah 'tunggu' digunakan untuk menunggu untuk menyelesaikan semua proses anak. Perintah 'tanggal' dan 'tidur' dijalankan sebagai proses latar belakang.

#Lingkaran luar

untuk Saya di dalam { 1 .. 2 }

Mengerjakan

# Putaran dalam

untuk J di dalam { 1 .. 3 }

Mengerjakan

jika tes ' $(pekerjaan | wc -l) ' -ge 2 ; Kemudian

Tunggu -N

menjadi

#Proses latar belakang

{

tanggal

tidur 1

} &

Selesai

Selesai

Output berikut muncul setelah menjalankan skrip. Tanggal dan waktu saat ini dicetak 6 kali dari proses latar belakang untuk mengiterasi perulangan 'untuk' bersarang sebanyak 2×3=6 kali:

Contoh 4: Perbedaan Antara Rangkaian Berurutan dan Paralel

Buat file Bash dengan skrip berikut yang menunjukkan perbedaan antara proses berurutan dan proses paralel. Fungsi prn_char() didefinisikan dalam skrip untuk mencetak lima karakter dengan durasi 0,5 detik. Selanjutnya, loop “for” pertama digunakan untuk menjalankan fungsi prn_char() secara berurutan. Loop “for” kedua digunakan untuk menjalankan fungsi prn_char() secara paralel.

#Tentukan fungsi untuk mencetak 5 karakter dengan durasi 0,5 detik

prn_char ( ) {

untuk C di dalam Halo; Mengerjakan

tidur 0,5 ;

gema -N $c ;

Selesai

gema

}

#Jalankan fungsi menggunakan for loop secara berurutan

untuk keluar di dalam { 1 .. 3 } ; Mengerjakan

prn_char ' $ keluar '

Selesai

#Jalankan fungsi menggunakan for loop secara paralel

untuk keluar di dalam { 1 .. 3 } ; Mengerjakan

prn_char ' $ keluar ' &

Selesai


Output berikut muncul setelah menjalankan skrip. Perbedaan antara proses berurutan dan proses paralel ditampilkan di output. Di sini, semua karakter dari loop 'for' dari fungsi prn_char() dicetak sekaligus dalam proses berurutan dan setiap karakter dicetak tiga kali dalam proses paralel:

  p4

Kesimpulan

Menjalankan pekerjaan paralel menggunakan loop 'untuk' diperlukan untuk banyak tujuan pemrograman. Metode menjalankan pekerjaan paralel menggunakan loop 'untuk' ditunjukkan dalam tutorial ini.