在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。 在比较这两个模式之前,我们首先的搞明白几个概念,什么是阻塞和非阻塞,什么是同步和异步,同步和异步是针对应用程序和内核的交互而言的,同步指的...
分类:
其他好文 时间:
2014-08-27 18:24:08
阅读次数:
187
对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手。许多概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等,初学者往往迷惑不清,只知其所以而不知起所以然。 同步方式指的是发送方不等接收方响应,便接着发下个数据包的通信方式;而异步指发....
Non-blocking algorithm
In computer science, a non-blocking algorithm ensures that threads competing
for a shared resource do not have their execution indefinitely
postponed by mutual ex...
分类:
其他好文 时间:
2014-08-26 09:52:09
阅读次数:
270
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
下面我会介绍同一个使用 TCP 协议的客户端程序的几个不同版本,分别是停等版本、select 加阻塞式 I/O 版本、
非阻塞式 I/O 版本、fork 版本、线程化版本。它们都由同一个 main 函数调用来实现同一个功能,即回射程序客户端。
它从标准输入读入一行文本,写到服务器上,读...
分类:
其他好文 时间:
2014-08-25 23:00:15
阅读次数:
478
一、概述 ? ? ? ? ? acl 库的 C 库(lib_acl) 的 aio 模块设计了完整的非阻塞异步 IO 通信过程,在 acl 的C++库(lib_acl_cpp) 中封装并增强了异步通信的功能,本文主要描述了 acl C++ 库之非阻塞IO库的设计及...
分类:
其他好文 时间:
2014-08-25 21:20:25
阅读次数:
438
>_MsgId) { 73 case WM_INIT_DIALOG://初始化建立2个非阻塞的基于主窗口的子窗口 74 break; 75 case WM_NOTIFY_PARENT: 76 Id = WM_GetId(pMsg->hWinSrc); 77 ...
分类:
其他好文 时间:
2014-08-25 13:12:24
阅读次数:
389
/**
* TCP,使用非阻塞 connect
**/
#include "unp.h"
int
connect_nonb(int sockfd, const SA *saptr, socklen_t salen, int nsec)
{
int flags, n, error;
socklen_t len;
fd_set rset, wset;
struct timeval tval;
//1.调用 fcntl 设置套接字为非阻塞
flags = Fcntl(sockfd, ...
分类:
其他好文 时间:
2014-08-24 23:57:13
阅读次数:
464
上篇文章介绍了JavaScript异步机制,请看这里。JavaScript异步机制带来的问题JavaScript异步机制的主要目的是处理非阻塞,在交互的过程中,会需要一些IO操作(比如Ajax请求,文件加载,Node.js中的文件读取等),如果这些操作是同步的,就会阻塞其它操作。异步机制虽然带来了许...
分类:
Web程序 时间:
2014-08-24 22:15:13
阅读次数:
491
网络编程中有三对关键的词,单线程与多线程、阻塞与非阻塞、同步与异步,同步与异步一直是比较疑惑的地方。以前认为,同步就是阻塞socket,异步就是非阻塞socket,现在发现这样理解很片面的,其实好多地方有同步异步的概念。数字电路中的同步与异步是针对时钟来说的同步时序逻辑电路:各触发器有相同的时钟脉....
分类:
其他好文 时间:
2014-08-23 02:16:19
阅读次数:
226