IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待 ...
分类:
其他好文 时间:
2017-08-16 00:45:00
阅读次数:
182
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待 ...
分类:
其他好文 时间:
2017-08-15 13:24:27
阅读次数:
157
1.阻塞. 同步. 1) 读取的文件: input.txt 2) main.js 执行: 注意: 第一:绿色方框的是 输出 data. 可见 不可以直接输出读取的文件, 要使用 data.toString() 第二: 阻塞执行 ,是同步的, 按照顺序的. 如果指定 字符集. 执行: 2. 非阻塞 , ...
分类:
Web程序 时间:
2017-07-31 18:48:06
阅读次数:
177
简介: BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 NIO:同步非阻塞式IO,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用 ...
分类:
编程语言 时间:
2017-07-27 18:22:10
阅读次数:
204
这个问题最近面试总是遇到,作为一个只会写流水代码的程序员,一脸懵逼。看了网上的解释,看的还是很模糊,说下我对这个的理解。 先引出一个话题,两个大水缸,一个空一个满,让你把一个缸里面的水弄到另一个里面。 io:同步阻塞,最蠢的办法,拿个水瓢,盛水,来回跑。 nio:同步非阻塞,先来一根水管。水管一头放 ...
分类:
编程语言 时间:
2017-06-16 10:04:27
阅读次数:
182
老张爱喝茶,废话不说,煮开水。出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。1 老张把水壶放到火上,立等水开。(同步阻塞)老张觉得自己有点傻2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)老张还是觉得自己有点傻,于是变高端了,买了把会响笛的那种 ...
分类:
其他好文 时间:
2017-05-06 14:16:05
阅读次数:
153
在介绍TCP的网络通信编程时,不得不提到同步,异步,阻塞,非阻塞这几个概念,C++系和Java系沟通网络IO相关时,经常把这几种混在一起描述,比如同步阻塞,同步非阻塞,异步非阻塞等等,实际上,Linux AIO相关的API很少有使用在网络编程上,用同步异步描述网络IO并不准确,对于我们常用的Sock ...
分类:
其他好文 时间:
2017-05-06 13:07:25
阅读次数:
245
并行和并发 并发和并行从宏观上来讲都是同时处理多路请求的概念。但并发和并行又有区别,并行是指两个或者多个事件(多核线程)在同一时刻发生;而并发是指两个或多个事件(进程或者程序)在同一时间间隔内发生。计算机在宏观上并发,微观上并行。 在操作系统中,并发是指一个时间段中有几个程序都处于已启动运行到运行完 ...
分类:
其他好文 时间:
2017-05-04 14:40:24
阅读次数:
278
服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型。 (2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非J ...
分类:
其他好文 时间:
2017-04-25 10:17:46
阅读次数:
134
1 NIO NEW IO 的简称,新的java I/O标准,jdk1.4纳入,有以下特点: (1)NIO基于block块,以块(硬盘数据块)为单位处理数据,比旧式的io基于流的效率高。 (2)为各个基本类型类型提供缓存支持(buffer),最常用的是byteBuffer,用字节读写数据。 (3)使用 ...
分类:
其他好文 时间:
2017-04-22 20:47:18
阅读次数:
228