
网络编程
谈胖胖
码农
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Netty系列---源码实例
服务端代码: package com.tsh.common.learn.netty; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.Chan...原创 2019-10-24 20:43:25 · 5568 阅读 · 0 评论 -
Netty系列---线程模型与Reactor 模式
Netty的线程模型是基于NIO的Selector构建的,使用了异步驱动的Reactor模式来构建的线程模型,可以很好的支持成百上千的 SocketChannel连接。由于 READ/WRITE都是非阻塞的,可以充分提升I/O线程的运行效率 ,避免了IO阻塞导致线程挂起,同时可以让一个线程支持对多个客户端的连接SocketChannel的 READ/WRITE 操作,从根本上解决了传...原创 2019-10-24 20:01:50 · 4104 阅读 · 0 评论 -
Netty系列---IO多路复用技术
形成的原因: 如果一个I/O流进来,我们就开启一个进程处理这个I/O流。那么假设现在有一百万个I/O流进来,那我们就需要开启一百万个进程一一对应处理这些I/O流(——这就是传统意义下的多进程并发处理)。思考一下,一百万个进程,你的CPU占有率会多高,这个实现方式及其的不合理。所以人们提出了I/O多路复用这个模型,一个线程,通过记录I/O流的状态来同时管理多个I/O,可以提高服务器的吞吐能力。 ...原创 2019-10-24 19:52:42 · 6798 阅读 · 0 评论 -
Netty系列---网络IO模型
网络IO的本质就是socket流的读取,通常一次IO读操作会涉及到两个对象和两个阶段。 两个对象分别是: 用户进程(线程)Process(Thread) 内核对象 Kernel 两个阶段: 等待流数据准备(wating for the data to be ready); 从内核向进程复制数据(copying the data from the kernel to the process);...原创 2019-10-24 19:39:27 · 4050 阅读 · 0 评论