2022 flag 150编文章 - 005 java 网络编程
鸡汤一碗
当你遇到一件事,感觉无法解决,甚至已经影响到你生活和心情时,何不停下脚步,多些冷静,多些思考,换个角度,换个空间,换种方法,换个思路,也许事情会简单许多。一昧原地踏步、绕圈或太执着,只会让自己陷入痛苦深渊。生命总有挫折,但那不是尽头,只是在提醒你:该转弯了!
大纲
1. 阻塞I/O, 非阻塞I/O
2. 多路复用I/O模型
3. Java NIO
知识点
1. 阻塞I/O, 非阻塞I/O
阻塞IO与非阻塞IO区别请求IO内核是否会立刻返回、用户线程是否会挂起。阻塞:用户线程向内核发出I/O请求,然后用户线程挂起、等待I/O请求结果; 非阻塞:用户线程向内核发出I/O请求,内核立刻返回、用户线程不会挂起。 但是它并不知道这个IO操作是否真的成功了,为了知道IO操作是否成功,一般有两种策略:一是需要应用程序主动地循环地去问kernel(这种方法就是同步非阻塞IO);二是采用I/O通知机制
阻塞模型图
非阻塞模型图
2. 多路复用I/O模型
select 线程轮询多个socket状态,只有socket有IO读写事件,才通知用户线程进行IO读写操作。
3. Java NIO
3个关键词: Selector(选择器)、Channel(通道)、Buffer(缓存区)
Selector
Buffer
实操
无
总结
无
标签:
2022-flag
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!