Trong phần này, chúng ta sẽ xem cách sử dụng fork () để tạo quy trình con trong C ++. Chúng tôi cũng thực hiện một số tính toán trong mỗi quy trình. Vì vậy, trong quy trình mẹ của chúng tôi, chúng tôi sẽ tìm tổng của tất cả các số chẵn của một mảng và bên trong quy trình con, chúng tôi sẽ đếm tổng số lẻ từ các phần tử của mảng.
Khi fork () được gọi, nó trả về một giá trị. Nếu giá trị lớn hơn 0, thì hiện tại nó đang ở trong tiến trình mẹ, ngược lại nó đang ở trong tiến trình con. Vì vậy, sử dụng điều này, chúng tôi có thể phân biệt giữa các quy trình.
Mã mẫu
#include <iostream> #include <unistd.h> using namespace std; int main() { int a[15] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 , 11, 12, 13, 14, 15}; int odd_sum = 0, even_sum = 0, n, i; n = fork(); //subdivide process if (n > 0) { //when n is not 0, then it is parent process for (int i : a) { if (i % 2 == 0) even_sum = even_sum + i; } cout << "Parent process " << endl; cout << "Sum of even numbers: " << even_sum << endl; } else { //when n is 0, then it is child process for (int i : a) { if (i % 2 != 0) odd_sum = odd_sum + i; } cout << "Child process " <<endl; cout << "Sum of odd numbers: " << odd_sum << endl; } return 0; }
Đầu ra
Parent process Sum of even numbers: 56 Child process Sum of odd numbers: 64