软件的熵

“熵”是一个物理学的定义,指的是某个系统中的”无序”的总量.热力学定律保证了宇宙中的熵倾向于最大化.当软件中的无序增长时,程序员们称之为”软件腐烂”

阅读全文>>

Java NIO

Java NIO 是 IO复用模型在Java平台的实现 , 针对Java BIO在高并发情况下的缺点 1.4之后提供了NIO的实现. 还是以EchoServer为例子.

阅读全文>>

Java BIO

在JDK1.4出来之前,建立网络连接的时候采用BIO模式,下面以EchoServer为例子聊聊Java的阻塞IO.

阅读全文>>

网络IO模型

一次网络IO 的调用涉及到用户进程和系统内核对象 , 以读为例.

  1. 等待网络上的数据分组到达,并复制到内核的缓冲区
  2. 内核缓冲区数据复制到用户进程中,也就是调用网络IO进程的缓冲区.

常见的IO模型有五种, 不同的IO模型在这两个阶段的处理上各不相同.

阅读全文>>

TCP三次握手和短连接优化

虽然高级语言或者网络库对于网络连接的细节进行了屏蔽, 但是在遇到瓶颈的时候难免要深入其中,才能对其进行调优. 那么连接建立和终止的时候发生了什么?

阅读全文>>