草庐IT

async-upload

全部标签

c++ - boost 等效于 std::async()

如果不直接使用boost::thread和boost::bind,有没有办法实现以下代码的等价物?std::stringfunc(){std::stringstr("Hellofromasynctask!");returnstr;}intmain(){autoftr=std::async(&func);std::cout具体来说,这部分:autoftr=std::async(&func);? 最佳答案 当然。只需制作async(std::function)返回调用func()的future第一次等待的那一刻。您不会获得任何异步性,但

c++ - GCC 对 std::async(std::launch::async) 的行为与 Clang 的行为

有没有人有使用相当新的std::async的经验?我们目前正在实现一个并行文件解析器,它读取一个文件block并将该block传递给一个异步函数。以这种方式使用Clang(v3.0)与默认的std::async策略(依赖于实现)一起工作得很好。在双核机器上,它最多可触发4个线程,效果非常好。但是对于GCC(v4.7),文件读取线程不会产生任何新线程,从而使程序最终完全按顺序执行。使用std::launch::async,两个版本几乎都在做同样的事情(应该是这样)。有谁知道GCC的c++11线程功能的当前状态?或者这可能是我们实现中的错误?短代码:while(readNewChunk()

c++ - boost::asio 中 async_read() 中的 EOF

当async_read_some()返回EOF异常时,是服务器停止发送数据还是连接已关闭。我有这种困惑,因为我找不到一种方法来知道客户端是否已从服务器接收到所有数据。 最佳答案 表示连接已经关闭。虽然记录了elswhere它仍然适用:Anerrorcodeofboost::asio::error::eofindicatesthattheconnectionwasclosedbythepeer.如果客户端需要知道已经从服务器接收到所有数据,那么可以考虑在通信协议(protocol)中支持分帧。Boost.Asio提供更高级别的操作来帮

c++11 std::async 在 mingw 中不起作用

从HerbSutter的presentation运行这段代码.这在gcc4.6.3下的linux中工作正常。我在想mingw不支持future.h,但是这个错误真的很难理解!#include#include#include#include#includeusingnamespacestd;stringflip(strings){reverse(begin(s),end(s));returns;}intmain(){vector>v;v.push_back(async([]{returnflip(",olleH");}));v.push_back(async([]{returnflip(

c++ - 用自己的版本替换 std::async 但 std::promise 应该住在哪里?

我使用的是vc2011,结果发现std::async(std::launch::async,...)有点问题(有时它不会生成新线程并并行运行它们,而是重用线程并一个接一个地运行任务)。当我进行昂贵的网络调用时,这太慢了。所以我想我会编写自己的异步函数。我被卡住了,std::promise应该放在哪里?在1)线程函数、2)异步函数或3)调用函数中。代码:#include#include#include#include#includestd::stringthFun(){throwstd::exception("bang!");return"val";}std::futuremyasync

Python 多处理 apply_async 从不在 Windows 7 上返回结果

我正在尝试遵循一个非常简单的多处理示例:importmultiprocessingasmpdefcube(x):returnx**3pool=mp.Pool(processes=2)results=[pool.apply_async(cube,args=x)forxinrange(1,7)]但是,在我的Windows机器上,我无法得到结果(在ubuntu12.04LTS上它运行完美)。如果我检查结果,我会看到以下内容:[,,,,,]如果我运行results[0].ready(),我总是得到False。如果我运行results[0].get(),python解释器会卡住,等待获取永远不会

c++ - 将 C++11 async/futures 与 Windows 异步 IO 相结合的最佳 API 是什么?

特别是即将推出的Windows8(带有Metro)将要求任何IO异步编程。在C#/.Net中似乎有特殊的await和类似的构造,JavaScriptAPI将有自己的机制来实现它。什么是C++11集成?对于现代(或即将推出的)Windows,这是一个简洁的示例(例如,从文件中读取图像以供显示吗?)?如果它使用C++11功能,我希望涉及async或future吗? 最佳答案 TipsandtricksfordevelopingMetrostyleappsusingC++演示文稿在59:13介绍了这一点。原始接口(interface)使用

django - apply_async 后 Celery chord 不释放 redis pubsub channel

我正在从我的django应用程序中的celery启动一个chord以响应请求。和弦正确执行,但django从未发布pub-subchannel。杀死django服务器释放channel,然后它从redis-clipubsubchannels中消失。celery4.1.1或4.2.0rc4Redis4.0.9python2.7.15在本地运行,1个celeryworker,1个api服务器在这种情况下结果并不重要(但文档说不要忽略它们)完整示例项目位于:https://github.com/awbacker/celerychord-issue点击/api/start/并在运行celery

node.js - Node : Async job queue processing

我在nodejs中使用express开发一个经常与mongodb通信的网络应用程序。目前,我使用自己的作业队列系统运行生产,该系统仅在前一个作业完成后才开始处理作业(kue似乎采用了这种方法)。对我来说,这似乎非常低效,我希望有一个更加异步的作业队列,所以我正在寻找一些关于其他nodejs开发人员如何对他们的作业进行排队和构建他们的处理的建议。我的一个想法是处理任何立即收到的作业,并按添加顺序返回结果数据。还要考虑:目前每个用户都有自己独立的作业队列实例,这是正常做法吗?有什么理由不应该这样吗?(即,所有用户都将作业发送到一个通用队列?)如有任何意见/建议,我们将不胜感激。

ruby-on-rails - rails : Uploading a file to AS3 using fog and resque

问题:我有一个Rails应用程序,它要求用户上传某种类型的电子表格(csv、xslx、xsl等)进行处理,这可能是一项成本高昂的操作,因此我们决定将其发送到后台服务作为解决方案到这个问题。我们关心的问题是,因为我们的生产系统是在Heroku上,所以我们需要先将文件存储在AS3上,然后再检索进行处理。因为将文件上传到AS3本身就是一项成本高昂的操作,所以这也应该作为后台作业来完成。问题在于,由于Resque需要将文件数据放入Redis或稍后检索,因此使用Resque执行此操作可能会占用大量RAM。如您所知,Redis仅将其数据存储在RAM中,并且更喜欢简单的键值对,因此我们希望尽量避免这