草庐IT

apply_async

全部标签

c++ - std::async 不能异步工作

我有以下非常简单的代码:voidTestSleep(){std::cout因为我使用std::launch::async我希望TestSleep()将异步运行并且我将得到以下输出:TestAsyncTestAsyncok!!!TestSleepTestSleepOk但实际上我有同步运行的输出:TestAsyncTestSleepTestSleepOkTestAsyncok!!!您能解释一下为什么以及如何使TestSleep真正异步调用吗。 最佳答案 来自thisstd::asyncreferencenotessectionIfthe

c++ - 如何从 dispatch_apply (GCD) 循环写入数组?

我编写了代码来使用Runge-Kutta方法计算大量耦合主方程的动力学。代码包含很多for循环,其中每个步骤都是独立的。我打算使用GrandCentralDispatch来加速程序。我的尝试基于我在http://www.macresearch.org/cocoa-scientists-xxxi-all-aboard-grand-central找到的示例.我的代码和macresearch上的示例都不能在我的机器上编译(MacOSX10.6.8Xcode4.0.2)。所以这是我的代码:...doublevalues[SpaceSize],k1[SpaceSize];for(intt=1;t

c++ - 将 std::async 与模板函数一起使用

我如何,或者,我可以将模板函数传递给async?代码如下://main.cpp#include#include#include#includeintmain(){std::vectorv(16,1);autor0=std::async(std::launch::async,std::accumulate,v.begin(),v.end(),double(0.0));std::cout错误信息如下:^a.cpp:13:88:note:candidatesare:Infileincludedfroma.cpp:1:0:/usr/include/c++/4.8/future:1523:5:n

c++ - async([](){}) 和 thread([](){}).detach() 有什么区别?

下面两个语句在执行方面有什么区别?async([](){...});thread([](){...}).detach(); 最佳答案 std::async([](){...});//(1)std::thread([](){...}).detach();//(2)大多数情况下,当std::async被讨论时,首先注意到的是它被破坏了,这个名字暗示了当返回值不被接受时不成立的东西(分配给要在当前作用域结束时销毁的变量)。在这种情况下,std::async的中断正是导致(1)和(2);一个会阻止,另一个不会。为什么std::async会在

c++ - boost::asio async_read 保证读取所有字节

我有一个服务器从客户端接收压缩字符串(用zlib压缩),我使用的是async_receive来自boost::asio库来接收这个字符串,但事实证明不能保证所有字节都将被接收,所以我现在必须将它更改为async_read.我面临的问题是接收到的字节大小是可变的,所以我不确定如何使用async_read不知道要接收的字节数。随着async_receive我只有一个boost::array,然而这是一个不一定完全填满的缓冲区。我想知道是否有人可以建议一个解决方案,即使我不知道要提前接收的字节数,我也可以使用async_read?voidtcp_connection::start(boost

ios - 使用 DispatchQueue.main.async 时 segue 调用了两次

我正在尝试对新的ViewController执行转接,但是转接被调用了两次并且新的ViewController出现了两次。我正在使用一种方法来对API执行GET请求检索数据。该方法使用完成处理程序。funcgetSearchResultsForQuery(_query:String,completionHandlerForSearchResultsForQuery:@escaping(_success:Bool,_error:NSError?)->Void)当该方法成功完成时,我的segue将根据需要从主队列中调用。我设置了断点,这样我就可以看到发生了什么,并且执行从performSe

iphone - dispatch_async 中的自定义 block

这段代码有效[[MyManagersharedManager]makeRequestAndParsingfor:someParameterssuccess:^(NSDictionary*dictionary){//SucessfulresponseNSLog(@"Success!!");}failure:^(NSError*error){//ErrorresponseNSLog(@"Failure!");}];但是每当我在后台运行相同的程序时,它永远不会进入成功或失败block。dispatch_async(dispatch_get_global_queue(DISPATCH_QUEU

ios - 使用 FMDB 将数据插入 SQLite 时,dispatch_async 上的 EXC_BAD_ACCESS

所以,我已经通读了我在互联网上找到的所有帖子,但我似乎仍然无法完成这项工作。我正在尝试将大量数据插入到sqlite数据库中。它是20000行数据,所以我必须在后台线程中进行。我有一个NSObject.h和.m文件来处理数据库操作。我从我的主视图中调用它们。这是我的代码:SQLiteDBHandler.m:database=[FMDatabasedatabaseWithPath:[selfgetDBPath]];[databaseopen];dispatch_queue_tq=dispatch_queue_create("FMDBQueue",NULL);dispatch_async(q

重学JavaScript高级(十二):async/await-事件循环-面试高频

async/await-事件循环前面我们学习了生成器和迭代器,那么在本篇文章中,我们主要讲解生成器与Promise的结合使用,从而引出async/await语法,同时会涉及面试中频次最高的一个知识点:事件循环生成器与异步处理首先需要了解回调地狱在Promise出来之前,我们多次请求网络接口,有可能产生回调地狱//伪代码functionrequest(url){//请求的逻辑代码//返回一个结果returnres;}//这样一层嵌套着一层,就是回调地狱request("第一次").then((res1)=>{request("第二次"+res1).then((res2)=>{request("第

ios - mmap、msync(MS_ASYNC) 和 munmap

如果我在内存映射区域上使用MS_ASYNC调用msync,同步过程将被异步处理。但是,如果我立即对该区域调用munmap,我是否可以假设msync将安全执行?或者我必须在munmap之前调用msync吗? 最佳答案 简短的回答是肯定的——即使您从不调用msync,对内容的更改最终(并且安全地)进入文件。来自man2mmap:MAP_SHAREDSharethismapping.Updatestothemappingarevisibletootherprocessesthatmapthisfile,andarecarriedthrou