C での Boost を使用したスレッド プールの作成と利用
C で Boost を使用してスレッド プールを確立するには、次の手順に従います。
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!"));
を使用してスレッドにタスクを割り当てます (通常はプログラム時に)終了):
ioService.stop();
threadpool.join_all();
コード例:
// 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();
要約すると、Boost は、スレッド プールを作成してそれらにタスクを割り当て、C での同時実行を可能にする簡単なメカニズムを提供します。アプリケーション。
以上がC でブーストを使用してスレッド プールを作成して使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。