C++의 다중 프로세스 프로그래밍에는
C++ 함수를 사용하여 다중 프로세스 프로그래밍 구현
소개
다중 프로세스 프로그래밍은 단일 컴퓨터에서 여러 프로세스를 동시에 실행할 수 있도록 하는 컴퓨터 프로그램을 작성하는 기술입니다. C++에서는
프로세스 만들기
프로세스를 만들려면std::thread
생성자를 사용해야 합니다. 생성자는 새 프로세스에서 실행될 함수에 대한 포인터를 인수로 받아들입니다. 다음 코드 예제에서는 메시지를 인쇄하고 5초 동안 대기한 다음 종료하는 새 프로세스를 만드는 방법을 보여줍니다.std::thread
构造函数。该构造函数接受一个函数指针作为参数,该函数将在新进程中运行。以下代码示例演示如何创建一个打印消息、睡眠 5 秒,然后退出的新进程:
#include#include using namespace std; void new_process() { cout << "Hello from new process!" << endl; this_thread::sleep_for(chrono::seconds(5)); } int main() { thread t(new_process); t.join(); return 0; }
在main()
函数中,我们创建了一个名为t
的std::thread
对象,它指向new_process
函数。然后,我们使用join()
函数等待该线程完成。
传递参数到进程
您可以将参数传递给进程,方法是将它们作为std::thread
构造函数的附加参数。以下代码示例演示如何将整数字段作为参数传递给新进程:
int main() { int x = 10; thread t(new_process, x); t.join(); return 0; }
在new_process
void new_process(int x) { cout << "The value of x: " << x << endl; }
main()
함수에서
라는 새 프로세스를 만듭니다. >t
의
std::thread
객체는
new_process
함수를 가리킵니다. 그런 다음
join()
함수를 사용하여 스레드가 완료될 때까지 기다립니다.
프로세스에 매개변수 전달
매개변수를std::thread
생성자에 추가 매개변수로 전달하여 프로세스에 매개변수를 전달할 수 있습니다. 다음 코드 예에서는 정수 필드를 새 프로세스에 매개변수로 전달하는 방법을 보여줍니다.
#include#include #include using namespace std; vector factors; void find_factors(long long n, int start, int end) { for (int i = start; i < end; ++i) { if (n % i == 0) { factors.push_back(i); } } } int main() { long long n = 12345678910; int num_threads = 4; int range = n / num_threads; // 创建并运行线程 vector threads; for (int i = 0; i < num_threads; ++i) { threads.push_back(thread(find_factors, n, i * range, (i + 1) * range)); } // 等待线程完成 for (auto& t : threads) { t.join(); } //打印结果 for (int factor : factors) { cout << factor << endl; } return 0; }
new_process
함수에서 다음 구문을 사용하여 전달된 매개변수에 액세스할 수 있습니다.rrreee
Actual 사례
아래는 다중 프로세스 프로그래밍을 사용하여 큰 수의 분해를 계산하는 실제 사례입니다. 이 경우 분해를 처리하는 프로세스를 생성하고 기본 프로세스는 결과를 기다립니다. rrreee결론이 기사에서는 C++ 함수를 사용하여 프로세스 생성, 매개변수 전달 및 실제 사례를 포함하여 다중 프로세스 프로그래밍을 구현하는 방법을 배웠습니다. 다중 프로세스 프로그래밍은 애플리케이션의 성능과 효율성을 향상시키는 데 사용할 수 있는 강력한 기술입니다.위 내용은 C++ 함수를 사용하여 다중 프로세스 프로그래밍을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!