C++ Boost线程池执行顺序保证

C++ Boost线程池执行顺序保证,c++,multithreading,boost,threadpool,C++,Multithreading,Boost,Threadpool,当使用boost::asio::thread_pool时,是否可以保证我发布或分派任务的顺序与它们启动的顺序相同 例如,如果我有一个包含10个线程的boost::asio::thread_池,并且我向该线程池发布/分派了15个长时间运行的任务,那么应该有5个任务等待打开的线程。是否保证任务11将是前10个线程之一之后启动的下一个任务,然后是任务12,依此类推 我似乎找不到关于这个的任何文件 感谢您的帮助您需要订单做什么?订单不会以某种方式破坏线程池的用途吗?对于邮递和派送,它们的行为略有不同,将

当使用boost::asio::thread_pool时,是否可以保证我发布或分派任务的顺序与它们启动的顺序相同

例如,如果我有一个包含10个线程的boost::asio::thread_池,并且我向该线程池发布/分派了15个长时间运行的任务,那么应该有5个任务等待打开的线程。是否保证任务11将是前10个线程之一之后启动的下一个任务,然后是任务12,依此类推

我似乎找不到关于这个的任何文件


感谢您的帮助

您需要订单做什么?订单不会以某种方式破坏线程池的用途吗?对于邮递和派送,它们的行为略有不同,将它们混合在一起不能保证维持秩序。这可能是一个很难回答的问题。“开始”是什么意思?如果任务A在任务B进入队列之前进入队列,那么很容易确保任务A在任务B进入队列之前从队列中被选中,但是谁能说某个工作人员不会选择任务A,然后在另一个工作人员选择并“启动”任务B时丢失其时间片?听起来您需要在必要时建立任务之间的依赖关系。线程池正在并行地对数据进行操作,但是我需要确保我处理worker结果的顺序是我发布它们的顺序。从sehe发布的链接和Solomon Slow的评论中,我看到没有任何保证,因此将围绕这一点添加逻辑。你要这订单做什么?订单不会以某种方式破坏线程池的用途吗?对于邮递和派送,它们的行为略有不同,将它们混合在一起不能保证维持秩序。这可能是一个很难回答的问题。“开始”是什么意思?如果任务A在任务B进入队列之前进入队列,那么很容易确保任务A在任务B进入队列之前从队列中被选中,但是谁能说某个工作人员不会选择任务A,然后在另一个工作人员选择并“启动”任务B时丢失其时间片?听起来您需要在必要时建立任务之间的依赖关系。线程池正在并行地对数据进行操作,但是我需要确保我处理worker结果的顺序是我发布它们的顺序。从sehe发布的链接和Solomon Slow的评论中,我看到没有任何保证,因此将围绕这一点添加逻辑。