La programmation multiprocessus en C++ implique la création et la gestion de processus exécutés en parallèle à l'aide du fichier d'en-tête
Utilisation des fonctions C++ pour implémenter une programmation multi-processus
Introduction
La programmation multi-processus est une technique d'écriture de programmes informatiques qui permet à plusieurs processus de s'exécuter simultanément sur un seul ordinateur. En C++, vous créez et gérez des processus à l'aide du fichier d'en-tête
Création d'un processus
Pour créer un processus, vous devez utiliser le constructeur std::thread
. Le constructeur accepte en argument un pointeur vers une fonction qui sera exécutée dans le nouveau processus. L'exemple de code suivant montre comment créer un nouveau processus qui imprime un message, se met en veille pendant 5 secondes, puis se termine : std::thread
构造函数。该构造函数接受一个函数指针作为参数,该函数将在新进程中运行。以下代码示例演示如何创建一个打印消息、睡眠 5 秒,然后退出的新进程:
#include <thread> #include <iostream> 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()
, nous créons un nouveau processus appelé t</code ><code>std::thread
, qui pointe vers la fonction new_process
. Nous utilisons ensuite la fonction join()
pour attendre la fin du thread. Passer des paramètres au processus
Vous pouvez transmettre des paramètres au processus en les passant comme paramètres supplémentaires au constructeurstd::thread
. L'exemple de code suivant montre comment passer un champ entier en tant que paramètre à un nouveau processus : #include <thread> #include <vector> #include <algorithm> using namespace std; vector<int> 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<thread> 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
, vous pouvez accéder aux paramètres passés en utilisant la syntaxe suivante : rrreeeActual cas
🎜🎜Ci-dessous Il s'agit d'un cas pratique d'utilisation de la programmation multi-processus pour calculer la décomposition de grands nombres. Dans ce cas, nous créerons un processus pour gérer la décomposition et le processus principal attendra les résultats. 🎜rrreee🎜🎜Conclusion🎜🎜🎜Dans cet article, vous avez appris à utiliser les fonctions C++ pour implémenter une programmation multi-processus, y compris la création de processus, la transmission de paramètres et un cas pratique. La programmation multi-processus est une technique puissante qui peut être utilisée pour améliorer les performances et l’efficacité de vos applications. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!