Maison >développement back-end >C++ >Comment puis-je créer et utiliser un pool de threads avec Boost en C ?
Création et utilisation d'un pool de threads avec Boost en C
Pour établir un pool de threads à l'aide de Boost en C, respectez ces étapes :
boost::asio::io_service ioService; boost::thread_group threadpool;
threadpool.create_thread( boost::bind(&boost::asio::io_service::run, &ioService) );
ioService.post(boost::bind(myTask, "Hello World!"));
Pour arrêter les threads (généralement lors du programme résiliation) :
ioService.stop();
threadpool.join_all();
Exemple de code :
// Create io_service and thread_group boost::asio::io_service ioService; boost::thread_group threadpool; // Start the ioService processing loop boost::asio::io_service::work work(ioService); // Add threads to the thread pool threadpool.create_thread( boost::bind(&boost::asio::io_service::run, &ioService) ); threadpool.create_thread( boost::bind(&boost::asio::io_service::run, &ioService) ); // Assign tasks to the thread pool ioService.post(boost::bind(myTask, "Hello World!")); ioService.post(boost::bind(clearCache, "./cache")); ioService.post(boost::bind(getSocialUpdates, "twitter,gmail,facebook,tumblr,reddit")); // Stop the ioService processing loop ioService.stop(); // Join all threads in the thread pool threadpool.join_all();
En résumé, Boost fournit un mécanisme simple pour créer des pools de threads et leur attribuer des tâches, permettant une exécution simultanée en C candidatures.
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!