我应该在高度动态的系统中使用优先级队列来调度任务(函数等)吗?
Should I use Priority Queues for scheduling tasks (functions, etc.) in a highly dynamic system?
我是一名对游戏引擎等动态系统感兴趣的业余程序员,我有一个任务调度系统的想法,它使用诸如优先级队列之类的东西来动态地对不同的任务进行排序,并且可能包括一个并行功能来使用多个内核有效率的。我的明确想法是使用某种 Task class ,它本身存储一个函数指针和两个队列参数,一个是任务的重力,一个是它被推入队列的时间,然后是乘以存档在列表中的位置。
现在我的问题来了。与硬编码系统(如某些 'main loop')相比,这样的系统总体上是否更有效或至少以任何方式付出代价?
例如它是更好的解决方案/更快吗?
感谢回复。
这正是优先队列的设计目的。从优先队列开始你的设计,看看它的进展情况。然后,如果出现特定问题,您可能需要对其进行调整。
我是一名对游戏引擎等动态系统感兴趣的业余程序员,我有一个任务调度系统的想法,它使用诸如优先级队列之类的东西来动态地对不同的任务进行排序,并且可能包括一个并行功能来使用多个内核有效率的。我的明确想法是使用某种 Task class ,它本身存储一个函数指针和两个队列参数,一个是任务的重力,一个是它被推入队列的时间,然后是乘以存档在列表中的位置。 现在我的问题来了。与硬编码系统(如某些 'main loop')相比,这样的系统总体上是否更有效或至少以任何方式付出代价? 例如它是更好的解决方案/更快吗? 感谢回复。
这正是优先队列的设计目的。从优先队列开始你的设计,看看它的进展情况。然后,如果出现特定问题,您可能需要对其进行调整。