摘要:
由于某些原因,此博客不会再更新了。 阅读全文
摘要:
1.AIO模型分析 AsyncChannelGroup指的是,可以被多个异同通道所共享的资源群组。其中,最主要的资源有线程池。 不指定的情况下,系统会使用一个默认的AsyncChannelGroup。 在AIO编程模型中,高效率和方便是因为操作系统做了很多的事。 在请求处理的过程中,并不是在主线程中 阅读全文
摘要:
1.从操作系统的内核角度对比三大模型 1.1 阻塞式I/O 对应BIO 1.2 非阻塞式I/O 对应NIO的非阻塞模式 注意:上图并不包括NIO的Selector监听模式,仅仅对应NIO中把服务端ServerSocketChannel和客户端SocketChannel配置的非阻塞模式。 1.2.1 阅读全文
摘要:
1. NIO模型分析 对于服务端,创建Selector,需要监听ServerSocketChannel的ACCEPT事件,监听注册的每一个SocketChannel的READ事件。 Selector监听ACCEPT事件,如果有客户发出连接请求,服务端要为该客户的通道在服务器Selector注册REA 阅读全文
摘要:
1.NIO概述 Channel与Stream的不同: Stream是具有方向性的,有输入流 or 输出流;Channel是双向的,既可以读又可以写。 Stream的读和写都是阻塞式的;但是Channel有两种模式,既可以阻塞式读写,又可以非阻塞式读写。 非阻塞的意思是,例如想从某个Channel中读 阅读全文
摘要:
1.BIO编程模型 BIO模型:对每一个建立连接的客户端,服务端都要创建一个线程单独处理和这个客户的通信,典型的一请求一应答。 1.1 优化——伪异步IO编程模型 思路:使用线程池来管理服务器端所有可用线程,即通过一个线程池来处理多个客户端的请求接入。 好处:通过线程池可以灵活的调配线程资源,设置线 阅读全文
摘要:
1.Socket与ServerSocket 如果收到客户端的请求后,accept函数会返回一个Socket对象。该对象是服务器用于和客户端通信的端点。 accept函数是阻塞式的,直到收到客户端的请求。 2.简单演示Socket与ServerSocket的基本使用 目标:客户端连接到服务器后,发送消 阅读全文
摘要:
1. java.io下的字符流和字节流 网络编程的本质是进程间的通信,通信的基础是IO模型。 1.1字符流 1.2字节流 2.Socket Socket是网络通信的端点 2.1 通过Socket发送数据 2.2 通过Socket读取数据 3. 同步异步与阻塞非阻塞的概念 同步异步指的是通信机制的两种 阅读全文
摘要:
1. 网络编程演进史 Java1.4以前,BIO(阻塞IO) Java1.4,NIO(非阻塞IO) Java1.7,AIO(异步IO) 2. 网络层的解析与协议 2.1域名DNS的解析过程 域名解析:从右向左将域名 解析为 IP地址。例如www.google.com,其实是省略了.root根域名,即 阅读全文
摘要:
方法1:动态规划。类似于最长上升子序列问题。 时间复杂度为O(n^2), 空间复杂度:O(n) 先将所有的 n 个区间按照左端点从小到大进行排序,随后使用动态规划的方法求出区间数量的最大值。 ☆☆☆☆方法2【最优解】:贪心算法。时间复杂度:O(nlogn), 空间复杂度:O(logn) 每次选择中, 阅读全文