网络编程NIO中的阻塞与非阻塞

同步与异步

同步:线程自己去获取结果。(只有一个线程)

异步:线程自己不去获取结果,由其他线程去获取。(多个线程之间通信)

阻塞

阻塞模式下,线程要执行I/O操作时,必须等待I/O操作完成,才能向下运行。(同步)

非阻塞

非阻塞模式下,线程要执行I/O操作时,只需在等待操作完成期间保持响应,处理其他任务。(同步/异步)

多路复用

在NIO多路复用中,当一个线程调用选择器的select()方法时,选择器会阻塞等待,直到有已注册的通道就绪(可以执行读或写操作)。然后选择器会返回一个就绪通道的集合,线程可以遍历这个集合,对每个就绪的通道执行相应的IO操作。这样,一个线程就可以同时处理多个网络连接,提高了处理能力和并发性。

相关推荐
wuk99815 分钟前
基于C#与三菱PLC通过TCPIP实现MC协议通信示例
java·网络·c#
运维有小邓@1 小时前
Log360 的可扩展架构实践:常见场景
运维·网络·架构
热心市民R先生1 小时前
IGH EtherCAT 主站核心文件体系全解析:构成、区别与运维实践
运维·服务器·网络
weixin_456904271 小时前
在 .NET Framework 4.0 中实现方法超时控制
网络·.net
何妨呀~2 小时前
Keepalived+Haproxy高可用集群实验
linux·服务器·网络
(Charon)2 小时前
[网络编程] 基于 DPDK 的 UDP 报文收发实现
网络·网络协议·udp
..过云雨2 小时前
HTTP 协议深度解析:请求/响应、报头、正文的核心原理与实战
网络·网络协议·tcp/ip·计算机网络·http
wechat_Neal3 小时前
车载以太网技术全景-网络基础理论篇
网络
水境传感 张园园3 小时前
便携式光透过率检测仪:如何成为安全“守门人”?
网络
做萤石二次开发的哈哈4 小时前
萤石开放平台 萤石可编程设备 | 设备 Python SDK 使用说明
开发语言·网络·python·php·萤石云·萤石