摘要: AIO是异步非阻塞io, 也叫 nio2.0. 直接上代码, server: public class Server implements Runnable { public AsynchronousServerSocketChannel assc; private CountDownLatch l 阅读全文
posted @ 2020-03-01 15:31 Sniper_ZL 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 随着访问量越来越多, BIO 和 伪异步IO 已经不能满足需求了. 所以后面又出了个 NIO. 1. NIO 使用了一个 通道Channel 的概念, 他是一个双向通道, 可以读取和写入数据. 程序中使用的 SocketChannel 读写操作都是异步的, 没有读写的数据最直接返回. 2. NIO 阅读全文
posted @ 2020-03-01 15:29 Sniper_ZL 阅读(456) 评论(0) 推荐(0) 编辑
摘要: BIO的时候, 一个客户端对应服务器的一条线程, 比较耗线程资源. 在此基础上, 对起线程进行优化, 创建一个线程池, 对线程进行管理, 可以设置一个最大线程数 maxThreadCount. 这样, 达到线程可控的目的. 即使外面有远大于线程数的连接过来, 也不至于让服务器撑爆. 多出的客户端, 阅读全文
posted @ 2020-03-01 15:27 Sniper_ZL 阅读(374) 评论(0) 推荐(0) 编辑
摘要: BIO BIO 是一种同步阻塞模式, 只要有一个客户端接入, 服务器就会有一条线程与之对应, 进行通信. 以前的一种常用做法是, 服务器端起一条线程, 进行监听, 当监听到客户端接入后, 新起一条线程, 专门与客户端进行通信. 如果线程不够用了, 就不能建立连接了. 客户端只能等待. 同步说的其实是 阅读全文
posted @ 2020-03-01 15:23 Sniper_ZL 阅读(407) 评论(0) 推荐(0) 编辑