Boost.Fiber是否会自动产生网络请求(如果我理解正确的话,它们会在I/O期间产生CPU ),例如网络上的数据库调用?我想用它来设置阻塞的数据库调用,在其中我插入了大量的信息,并且在接收到这些信息时需要插入大量的小记录。我的另一个选择是libdill/libmill进行微线程处理。
总的想法是:
纤维的工作方式和我想象的一样吗?
这是使用RapidJSON和boost.fiber的代码的简化基本结构,但我从网络(Websocket)获得消息:
inline
void doDatabaseCall( Document &msg ) {
//Get connection & do query with libpqxx
}
Document msg;
msg.Parse( "{\"myVar\": \"test\"}" );
Document msg2;
msg2.Parse( "{\"myVar\": \"test2\"}" );
boost::fibers::fiber f1( doDatabaseCall, msg);
boost::fibers::fiber f2( doDatabaseCall, msg2);
f1.join();
f2.join();发布于 2018-03-30 23:17:34
https://stackoverflow.com/questions/49578241
复制相似问题