【发布时间】:2014-11-10 19:01:49
【问题描述】:
std::promise 提供了一种设置值(类型 T)的方法,它 稍后可以通过关联的 std::future 对象读取
这两者究竟是如何关联的?
我担心未来会与错误的承诺配对是否合理?
更新:来自并发操作的示例...(但代码无法编译)
#include <future>
void process_connections(connection_set& connections)
{
while(!done(connections)){
for(connection_iterator
connection=connections.begin(),end=connections.end();
connection!=end;
++connection)
{
if(connection->has_incoming_data()){
data_packet data=connection->incoming();
std::promise<payload_type>& p=
connection->get_promise(data.id);
p.set_value(data.payload);
}
if(connection->has_outgoing_data()){
outgoing_packet data=
connection->top_of_outgoing_queue();
connection->send(data.payload);
data.promise.set_value(true);
}
}
}
}
【问题讨论】:
-
请参阅What is std::promise? 了解更多讨论和简短的演示程序。
标签: c++ multithreading