这是一个关于 C++ REST SDK 的异步任务功能的概念性问题(也许也是一个菜鸟问题)。
在一个基本应用程序中,我有一个客户端并执行几个请求,例如
http_client client(U("whatever"));
for(int i=0; i<100; ++i)
{
http_request request;
//fill the request
client.request(request).then([](http_response response) { /* do something*/});
}
(for-loop只是表示请求经常发送,我并没有真正在我的代码中使用它)。
问题:
据我了解,异步任务库然后以并行方式处理这些传入请求 - 这意味着不是主线程以类似事件的方式处理所有任务,而是该库将任务分配给某些底层线程池(——对我来说是不透明的——)方式。我说对了吗?
如果前面的观点是正确的,那么还有什么理由将 REST SDK 与 C++ 的多线程能力结合起来。例如,再次采用上述循环,启动 10 个线程,并在每个进程中进行 10 次循环迭代。这有意义还是没有必要?
此外,一般来说,是否有任何常见的模式应该通过 C++11 多线程特性结合 ppl 功能?或者,依靠 REST SDK 和 ppl 来更好地完成工作是否安全?
(信息:我也在cpprest 讨论页面上问过这个问题。但是,这个论坛似乎不再维护了。)