进程 线程:
线程是属于进程的,一个进程内的多个线程共享了进程的内存空间;而多个进城之间的内存空间是独立的.
网络通信基础知识:
LAN : 局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组.
MAN : 都会网域(MetropolitanAreaNetwork,MAN)指大型的计算机网络,属于IEEE802.6标准,是介于LAN和WAN之间能传输语音与数据的公用网络。MAN是改进LAN(局域网)中的传输媒介,扩大局域网的范围,达到包含一个大学校园、城市或都会区。它是较大型的局域网,需要的成本较高,但可以提供更快的传输速率。
WAN : 广域网(WAN,Wide Area Network)也称远程网(long haul network )。
网络IO实现方式:
BIO方式:
即Bolcking IO,采用阻塞的方式实现,也就是一个Socket套接字需要一个线程来进行处理.发生建立连接,读数据,写数据的操作时,都可能会阻塞.
NIO方式:
Noblocking IO,基于事件驱动思想,采用的是Reactor模式
NIO方式下不是用单个线程去应对单个Socket套接字,而是统一通过Reactor对所有客户端的Socket套接字的事件错处理,然后派发给不同的线程中,解决了BIO中为支撑更多Socket套接字而需要打开更多线程的问题.

AIO方式:
即AsynchronousIO,就是异步IO,AIO采用Proactor模式,如下图

AIO与NIO的差别是,
AIO在进行读/写操作时,只需要调用相应的read/write方法,并需要传入CompletionHandler(动作完成的处理器);在动作完成后,会调用CompletionHandler.
NIO的通知是发生在动作之前,是在可写/可读的时候,Selector发现这些事件后调用handler处理.
NIO在有通知时可以进行相关操作,而AIO在有通知时表示相关操作已经完成.
网友评论