Các ví dụ khác nhau về công việc song song
Các cách khác nhau để chạy các công việc song song bằng cách sử dụng vòng lặp “for” được trình bày trong phần hướng dẫn này.
Ví dụ 1: Chạy các công việc song song bằng vòng lặp “For”
Sử dụng vòng lặp “for” là cách đơn giản hơn để thực hiện các công việc song song trong tập lệnh Bash. Tạo một tệp Bash với tập lệnh sau chạy vòng lặp “for” 10000 lần và in một số sau khi lặp lại 1000 lần. Nhiệm vụ này được thực hiện song song bằng cách sử dụng vòng lặp “for”.
#!/bin/bash
# Lặp lại vòng lặp cho đến khi đạt tới 10000
vì val TRONG ` tiếp theo 0 1000 10000 ` ;
LÀM
#In mọi số thứ 1000
tiếng vang $val
xong
Đầu ra sau xuất hiện sau khi thực thi tập lệnh. Có 10 số từ 0 đến 10000 được in ở đầu ra:
Ví dụ 2: Chạy các công việc song song bằng cách sử dụng vòng lặp “For” lồng nhau
Tạo một tệp Bash với tập lệnh sau chạy vòng lặp “for” lồng nhau để tạo số sê-ri bằng cách sử dụng các ký tự chữ cái từ “A” đến “C” và các số từ 1 đến 3. Trong lần lặp đầu tiên của vòng lặp bên ngoài và sau đó hoàn thành việc lặp lại vòng lặp bên trong, “A1. CodeIgniter”, “A2. Laravel” và “A3. CakePHP” được in. Trong lần lặp thứ hai của vòng lặp bên ngoài và sau khi hoàn thành việc lặp lại vòng lặp bên trong, “B1. Oracle”, “B2. MySQL” và “B3. SQL” được in. Trong lần lặp thứ ba của vòng lặp bên ngoài và sau khi hoàn thành việc lặp lại vòng lặp bên trong, “C1. CSS”, “C2. JQuery” và “C3. JavaScript” được in.
#vòng lặp bên ngoài
vì chữ cái TRONG { AC }
LÀM
#Vòng trong
vì con số TRONG { 1 .. 3 }
LÀM
#In đầu ra dựa trên điều kiện
nếu như [ $alpha == 'MỘT' ] ; sau đó
lập danh sách = ( 'Bộ đánh lửa mã' 'Ấu trùng' 'CakePHP' )
yêu tinh [ $alpha == 'B' ] ; sau đó
lập danh sách = ( 'Nhà tiên tri' 'MySQL' 'SQL' )
yêu tinh [ $alpha == 'C' ] ; sau đó
lập danh sách = ( 'CSS' 'Truy vấn' 'JavaScript' )
là
tiếng vang ' $alpha số $ . ${arrayList[$number-1]} '
xong
xong
Đầu ra sau xuất hiện sau khi thực thi tập lệnh:
Ví dụ 3: Chạy các công việc song song bằng cách sử dụng lệnh “For” Loop và “Wait”
Lệnh “wait” là một lệnh rất hữu ích của Bash được sử dụng để đợi một công việc hoàn thành tác vụ khi nhiều công việc đang chạy. Nếu có ít công việc đang chạy hơn, lệnh “chờ” sẽ bắt đầu một công việc mới không đồng bộ. Tạo một tệp Bash với tập lệnh sau để chạy một công việc nền bên trong vòng lặp “for” lồng nhau. Lệnh “wait” được sử dụng để đợi hoàn thành tất cả các tiến trình con. Các lệnh “ngày” và “ngủ” được thực thi dưới dạng quy trình nền.
#vòng lặp bên ngoàivì Tôi TRONG { 1 .. 2 }
LÀM
#Vòng trong
vì j TRONG { 1 .. 3 }
LÀM
nếu như Bài kiểm tra ' $(công việc | wc -l) ' -ge 2 ; sau đó
Chờ đợi -N
là
#quy trình nền
{
ngày
ngủ 1
} &
xong
xong
Đầu ra sau xuất hiện sau khi thực thi tập lệnh. Ngày và giờ hiện tại được in 6 lần từ quy trình nền để lặp lại các vòng lặp “for” lồng nhau trong 2×3=6 lần:
Ví dụ 4: Sự khác biệt giữa chạy tuần tự và chạy song song
Tạo tệp Bash với tập lệnh sau cho thấy sự khác biệt giữa chạy tuần tự và chạy song song. Hàm prn_char() được xác định trong tập lệnh để in năm ký tự với thời lượng 0,5 giây. Tiếp theo, vòng lặp “for” đầu tiên được sử dụng để chạy hàm prn_char() theo tuần tự. Vòng lặp “for” thứ hai được sử dụng để chạy song song hàm prn_char().
#Xác định chức năng in 5 ký tự với thời lượng 0,5 giâyprn_char ( ) {
vì c TRONG Xin chào; LÀM
ngủ 0,5 ;
tiếng vang -N $c ;
xong
tiếng vang
}
# Chạy hàm tuần tự bằng vòng lặp for
vì ngoài TRONG { 1 .. 3 } ; LÀM
prn_char ' $ ra '
xong
# Chạy song song hàm sử dụng vòng lặp for
vì ngoài TRONG { 1 .. 3 } ; LÀM
prn_char ' $ ra ' &
xong
Đầu ra sau xuất hiện sau khi thực thi tập lệnh. Sự khác biệt giữa chạy tuần tự và chạy song song được hiển thị trong đầu ra. Ở đây, tất cả các ký tự của vòng lặp “for” của hàm prn_char() được in cùng một lúc trong quá trình chạy tuần tự và mỗi ký tự được in ba lần trong quá trình chạy song song:
Phần kết luận
Chạy các công việc song song sử dụng vòng lặp “for” là cần thiết cho nhiều mục đích lập trình. Các phương pháp chạy các công việc song song bằng cách sử dụng vòng lặp “for” được trình bày trong hướng dẫn này.