如何确定boost :: asio :: io_service已完成任务?

时间:2013-02-04 09:12:57

标签: c++ multithreading boost boost-asio

我需要构建一个具有调度优先级的线程池:所有正在运行的线程在CPU时间和操作系统优先级方面具有相同的优先级,但是当需要选择要完成的下一个任务时,优先级最高的任务首先执行

我决定尝试使用boost :: asio,因为它有一个看起来不错的线程池。我查看了prioritized handlers example in the asio documentation,但我不喜欢它,因为它没有限制线程数,我必须手动安排任务。我需要的是一个固定数量的线程,可以从队列中获取任务,因此我可以在我的应用程序中创建单个池,然后在应用程序生命周期内随时添加任务。

当任务完成时,从asio :: io_service获取一些通知就足够了;该通知的处理程序可以找到具有最高优先级的下一个任务,并将其发布到服务中。

这可能吗?

0 个答案:

没有答案