Tag: 异步

同步和异步通信如何正常工作

我试图理解术语同步和异步通信,但我有点困惑。 我试图深入研究这一点,但仍然存在混淆。 我的问题如下: 1.同步和异步通信如何工作? 还参考上面提到的用于异步通信的信号是什么。 2.同步和异步过程如何工作? 任何说明这一点的例子都会有所帮助。 如果这是一个非常简单的问题,请道歉。 我是编程新手。 希望你的答案能帮助我。 提前致谢!!!!

异步ReadDirectoryChangesW – GetQueuedCompletionStatus总是超时

正如它听起来一样,我正在尝试使用IO完成的异步ReadDirectoryChangesW并且它不起作用,具体而言, GetLastError重复返回258( GetQueuedCompletionStatus超时)。 我有结构: typedef struct dirinfo_struct { HANDLE hDirFH; // directory handle OVERLAPPED Overlapped; // overlapped storage int len_buffer; // buffer length wchar_t* buffer; // buffer itself wchar_t* directory_name; // target name } dirinfo_t; typedef struct dirmon_struct { HANDLE hDirOPPort; // handle to the IO port. dirinfo_t* dirinfo; // pointer to the struct above. […]

跨平台,具有异步function的C / C ++ HTTP库

我正在寻找一个可以在Windows和Linux上运行的C / C ++库,它允许我以不同的方式查询多个web服务器(每分钟1000个)页面标题和下载网页,就像WinHttp库在Windows环境中一样。 到目前为止,我遇到了libCurl,它似乎做了我想要的,但是异步方面看起来很可疑。 您认为绕过使用库的想法并根据可实现此目的的套接字从头开始编写简单的东西是多么容易? 任何意见,建议或建议都会受到欢迎。 附录: – 任何机构都有关于使用libCurl进行此操作的评论,我说同步方面可能看起来很可疑,但有没有人有任何经验呢?

来自未知来源的MPI异步广播

我有一个C项目,有n个处理器在进行一种树搜索。 在程序的任何给定时间,这些过程中的任何一个都可能找到感兴趣的东西并且想要异步地将其发送到所有其他处理器。 如何在其他进程中侦听新消息,而无需在每次循环迭代时循环遍历所有可能的发送方? 我已经阅读了有关此问题的其他问题,例如这个问题( MPI – 异步广播/收集 ),但是,到目前为止我所看到的所有问题都没有处理不可预测的发送者或循环每个可能的发送者,我实际上并不是这样。花哨。 编辑澄清: 将找到的值发送到根级别并从那里分发它是不可选的。 如果我没有那个条件,祖兰的答案会起作用,所以对于其他人来说,这可能会有所帮助。 在我的情况下,它可以(并且肯定会)发生不同的排名找到他们需要多次共享的东西(这意味着竞争条件也可能发生)。

需要程序来说明在GNU C中使用settimer和alarm函数

任何人都可以在gnu C中说明settimer或alarmfunction的使用,请参考一些程序示例吗? 我有一个连续处理一些数据的程序,我需要设置一个每t秒关闭一次的计时器/警报,响应于此,我需要将处理过的数据存储到一个文件中。 这个文件写入必须是异步的。 我浏览了GNU C Library页面,但我理解不了多少.. [编辑] 我得到了这个程序: #include #include #include #define INTERVAL 1 int howmany = 0; void alarm_wakeup (int i) { struct itimerval tout_val; signal(SIGALRM,alarm_wakeup); howmany += INTERVAL; printf(“\n%d sec up partner, Wakeup!!!\n”,howmany); tout_val.it_interval.tv_sec = 0; tout_val.it_interval.tv_usec = 0; tout_val.it_value.tv_sec = INTERVAL; /* 10 seconds timer */ tout_val.it_value.tv_usec = 0; setitimer(ITIMER_REAL, &tout_val,0); […]

什么是异步套接字?

什么是异步套接字? 它们与普通套接字(阻塞和非阻塞)有何不同? 任何指向这个方向的指针或指向教程的任何链接都会有所帮助。 谢谢。

整洁的异步IO代码

虽然异步IO(带有select / poll / epoll / kqueue等的非阻塞描述符)不是Web上记录最多的东西,但是有一些很好的例子。 但是,所有这些示例在确定了调用返回的句柄后,只有一个’ do_some_io(fd) ‘存根。 它们并没有真正解释如何在这种方法中最好地接近实际的异步IO。 阻止IO非常整洁,直接读取代码。 另一方面,非阻塞,异步IO是毛茸茸的,凌乱的。 有什么办法? 什么是健壮和可读的? void do_some_io(int fd) { switch(state) { case STEP1: … async calls if(io_would_block) return; state = STEP2; case STEP2: … more async calls if(io_would_block) return; state = STEP3; case STEP3: … } } 或者(ab)使用GCC的计算得到: #define concatentate(x,y) x##y #define async_read_xx(var,bytes,line) \ concatentate(jmp,line): […]