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

同步与异步

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

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

阻塞

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

非阻塞

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

多路复用

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

相关推荐
asdfg12589638 小时前
如何判断一个地址是否可以用作主机 IP 地址?
服务器·网络·tcp/ip
爱吃甜品的糯米团子9 小时前
Linux 学习笔记之进程管理、网络基础与常用软件安装
linux·网络·学习
迷枫71210 小时前
19.1 TCP 和 UDP 有什么区别?
网络·tcp/ip·udp
取酒鱼食--【余九】11 小时前
深度学习经典网络解析:ResNet
网络·人工智能·深度学习·神经网络·resnet·卷积神经网络·残差神经网络
风清再凯11 小时前
05-k8s网络
网络·容器·kubernetes
LJ-SEU11 小时前
win-ubuntu网络转发
linux·网络·ubuntu
关关长语12 小时前
(一) Dotnet使用MCP的Csharp SDK
网络·.net·mcp
迎風吹頭髮13 小时前
Linux服务器编程实践26-TCP连接超时重连机制:超时时间计算与重连策略
服务器·网络·php
wanhengidc13 小时前
什么是站群服务器
运维·服务器·网络·游戏·智能手机
deng-c-f13 小时前
Linux C/C++ 学习日记(24):UDP协议的介绍:广播、多播的实现
linux·网络·学习·udp