【发布时间】:2014-12-03 06:30:44
【问题描述】:
假设我有两个未来,future<int> a 和 future<char> b。有没有办法将这两个(或指向它们的指针)放入任何标准容器(std::{list,vector,...}?
我打算用这个解决的问题:
设置:我有一个线程池库,它允许用户以带有参数的任意函数的形式提交任务作为任务。池在工作线程中执行带参数的函数,结果通过future<func::result_type> 传达给用户,其中func 是std::function<?>。 (?作为通配符,b/c it 具有任何功能。)这些期货也是等待任务完成的唯一外部方式。如果只想等到它们执行,则必须调用future::get() 并忽略结果。
问题:我想提供一种方法来等待当前队列中的所有任务。为此,我需要保留一份所有期货的清单,以便我可以对它们致电 get。
我说的库,如果你真的需要上下文(280 loc):https://github.com/Tyler-Hardin/thread_pool
【问题讨论】:
-
你能举一个你将用这个解决的问题的例子吗?如果你有,你会怎么用?
-
这个问题真的是两个不同的问题。
-
@Johan,这是一个有点深的问题,但我可以发布它。
-
我已经准备好答案,但我正在工作,想在午餐时间好好检查一下,然后再发帖。
-
主要是因为 C++ 真的不应该像 Java 那样被使用。
标签: c++ c++11 polymorphism c++-standard-library