Boost を使用して C でスレッド プールを作成するのは、次の手順を含む簡単なプロセスです。
Asio IO サービスとスレッドの作成グループ:
スレッドにタスクを割り当てるプール:
プール内のスレッドを停止するには、単純に:
例:
// Create IO service and thread group (i.e., thread pool) boost::asio::io_service ioService; boost::thread_group threadPool; // Start I/O service 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 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 I/O service and join threads ioService.stop(); threadPool.join_all();
次の手順に従って、スレッド プールを効率的に作成および利用して複数のタスクを同時に実行できるため、C アプリケーションのパフォーマンスと応答性が向上します。
以上がC で Boost を使用してスレッド プールを作成および使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。