Computer >> Máy Tính >  >> Lập trình >> C ++

Tính toán trong quy trình mẹ và con sử dụng fork () trong C ++

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