利用JDK提供的Future可以轻易的方法的完成同步非阻塞调用,类似于NIO中的管家,实现的也是同步非阻塞。public class FutureTaskTest { public static void main(String[] args) { ExecutorService es = E...
分类:
其他好文 时间:
2015-09-01 01:21:37
阅读次数:
191
会阻塞的函数:connect,accept,send/recv/sendto/recvfrom等读写函数.不会阻塞的函数:bind, listen,socket, closesocket.linux网络通信模型有:阻塞IO模型(同步),非阻塞IO模型(拷贝同步),IO复用模型(多线程同步),信号驱动...
分类:
系统相关 时间:
2015-08-19 00:28:26
阅读次数:
206
同步与异步1.同步与异步
同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)
所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。
换句话说,就是由调用者主动等待这个调用的结果。而异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果。换句...
分类:
其他好文 时间:
2015-08-13 18:05:31
阅读次数:
139
在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下:序号问题1什么是同步?2什么是异步?3什么是阻塞?4什么是非阻塞?5什么是同步阻塞?6什么是同步非阻塞?7什么是异步阻塞?8什么是异步非阻塞?在查了一部分资料后,愿试着以通俗易懂的方式解释下这几个名词。如有不足之处,还望告知...
分类:
编程语言 时间:
2015-06-11 12:23:32
阅读次数:
152
JAVA 中BIO,NIO,AIO的理解在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下:序号问题1什么是同步?2什么是异步?3什么是阻塞?4什么是非阻塞?5什么是同步阻塞?6什么是同步非阻塞?7什么是异步阻塞?8什么是异步非阻塞?散仙不才,在查了一部分资料后,愿试着以通俗...
分类:
其他好文 时间:
2015-05-25 22:13:24
阅读次数:
252
先看下面例子
同步阻塞:
令狐冲泡妹纸 ,打电话给妹纸 , 妹纸没有回应,令狐冲想我现在还不会独孤九剑,还不够NB,就老实点,令狐冲就一直等下去
同步非阻塞
令狐冲拍妹纸 , 打电话给妹纸 , 妹纸没有回应 , 令狐冲想老子猪脚光环,等会妹纸肯定会再打给我的,然后令狐冲就每隔10分钟瞅一眼电话。
异步阻塞
...
分类:
其他好文 时间:
2015-05-15 17:53:13
阅读次数:
105
Libevent的核心是事件驱动、同步非阻塞,为了达到这一目标,必须采用系统提供的I/O多路复用技术,而这些在Windows、Linux、Unix等不同平台上却各有不同,如何能提供优雅而统一的支持方式,是首要关键的问题。
统一的关键
Libevent支持多种I/O多路复用技术的关键就在于结构体eventop,这个结构体前面也曾提到过,它的成员是一系列的函数指针, 定义在event-int...
分类:
其他好文 时间:
2015-04-22 00:39:27
阅读次数:
152
Java NIO模式的Socket通信,是一种同步非阻塞IO设计模式,它为Reactor模式实现提供了基础。
下面看看,Java实现的一个服务端和客户端通信的例子。
NIO模式的基本原理描述如下:
服务端打开一个通道(ServerSocketChannel),并向通道中注册一个选择器(Selector),这个选择器是与一些感兴趣的操作的标识(SelectionKey,即通过这个标...
分类:
编程语言 时间:
2015-04-05 23:36:20
阅读次数:
302
异步非阻塞套接字避免了死循环的接收问题,但是软件用起来体验还是很差。究其原因,软件在指令的发送、接收上,采取了一种不合理的方式:在指令的发送后,立刻调用接收函数,等待回令。 若是采用同步阻塞套接字,那么如果连接出现问题没有回令,那么软件进程会始终等待锁死,这样显然是不合理。于是采用同步非阻塞的...
分类:
编程语言 时间:
2015-01-22 17:32:35
阅读次数:
212
NIO(同步非阻塞IO)是jdk1.4之后推出的newio,它跟BIO(同步阻塞IO)有着非常明显的区别。BIO在调用read/write的时候会阻塞线程,也就是就算某个时刻你的socket并没有数据需要传输,但是你的socket线程却仍然会被阻塞在read/write方法上,所以BIO是一个soc...
分类:
编程语言 时间:
2015-01-18 18:27:25
阅读次数:
265