我需要开发一个执行预定任务的模块 每个任务都安排在X毫秒内执行。
模块将执行任务的工作线程数作为参数。
任务堆积在队列中,该队列可能是优先级队列,因此线程会检查下一个队列任务(具有最低“兑换”时间的任务),因此无需迭代每次所有任务。
是否有任何公共图书馆可以做到这一点,还是我应该自己动手?
注意:我在Windows上使用VC2008。
答案 0 :(得分:5)
如果您不介意Boost依赖关系,threadpool可能符合您的需求。
答案 1 :(得分:3)
看看TBB - Intel Threading Building Blocks。
答案 2 :(得分:1)
只是为您的问题添加一些信息,您要求的是使用Earliest Deadline First算法的实时调度程序。另请注意,如果没有OS支持,您无法保证您的程序将在您指定的X毫秒期限内工作。操作系统总是可以决定在工作中间将您的任务交换掉CPU,这需要花费不可预测的时间才能完成。
如果您的应用程序严重依赖于您为其设置的X毫秒内的任务(或某些事情发生),则需要运行real-time operating system,而不是常规Windows。