面试-javaIO机制
1.BIO
BIO:是传统的javaIO以及部分java.net下部分接口和类。例如,socket,http等,因为网络通信同样是IO行为。传统IO基于字节流和字符流进行操作。提供了我们最熟悉的IO功能,譬如基于字节流的InputStream 和OutputStream.基于字符流的Reader和Writer.

特点:在IO执行的两个阶段都被阻塞住。优点:代码简单,直观。缺点:IO的效率,扩展性存在瓶颈。同步。阻塞
2.NIO
NIO 是一种同步非阻塞的 I/O 模型,在 Java 1.4 中引入了 NIO 框架,对应 java.nio 包,提供了 Channel , Selector,Buffer 等抽象。NIO 中的 N 可以理解为 Non-blocking,不单纯是 New。它支持面向缓冲的,基于通道的 I/O 操作方法。 NIO 提供了与传统 BIO 模型中的 Socket 和 ServerSocket 相对应的 SocketChannel 和 ServerSocketChannel 两种不同的套接字通道实现,两种通道都支持阻塞和非阻塞两种模式。阻塞模式使用就像传统中的支持一样,比较简单,但是性能和可靠性都不好;非阻塞模式正好与之相反。对于低负载、低并发的应用程序,可以使用同步阻塞 I/O 来提升开发速率和更好的维护性;对于高负载、高并发的(网络)应用,应使用 NIO 的非阻塞模式来开发.

特点:程序需要不断的去询问内核是否已经准备好,第一阶段非阻塞,第二阶段阻塞。
NIO的核心是:Channels ,buffers, Selectors.基本上所有的IO在NIO都是从一个Channels开始。


Selector:允许单线程处理多个Channel

NIO的底层使用了操作系统的多路复用。
优点是单线程可以处理多个网络IO.

(1)问题:select,poll,epoll的区别

Select有最大链接数的限制,因为其使用的是数组;poll没有,使用的是链表;


3.AIO


4.BIO,NIO,AIO分析

BIO适用于连接数比较小,且固定的架构。这种方式对服务器资源要求比较高。是1.4以前的唯一选择,直观,简单容易理解。
NIO适用于连接数目多,且连接比较短的架构。比如聊天服务器,编程比较复杂。
AIO适用于连接数目多,且连接比较长的架构。比如:相册服务器,Jdk7以后才支持。
相关文章:
面试-javaIO机制
1.BIO BIO:是传统的javaIO以及部分java.net下部分接口和类。例如,socket,http等,因为网络通信同样是IO行为。传统IO基于字节流和字符流进行操作。提供了我们最熟悉的IO功能,譬如基于字节流的InputStream 和OutputStream.基于字符流…...
在.NET Core中,config和ConfigureServices的区别和作用
在.NET Core中,config和ConfigureServices是两个不同的概念,它们在应用程序的启动和配置过程中扮演着不同的角色。 ConfigureServices:这是ASP.NET Core应用程序中的一个方法,位于Startup类的内部。它的作用是配置依赖注入(DI)容器…...
App Inventor 2 如何实现多个定时功能?
1、可以使用多个“计时器”组件。 2、也可以用一个计时器,定时一分钟。也就是一分钟就会触发一次事件执行,定义一个全局数字变量,在事件中递增,用逻辑判断这个变量的值即可完成多个想要定时的任务(о∀о) 代码块请参考…...
技术驱动的音乐变革:AI带来的产业重塑
📑引言 近一个月来,随着几款音乐大模型的轮番上线,AI在音乐产业的角色迅速扩大。这些模型不仅将音乐创作的门槛降至前所未有的低点,还引发了一场关于AI是否会彻底颠覆音乐行业的激烈讨论。从初期的兴奋到现在的理性审视࿰…...
重生之我要学后端0--HTTP协议和RESTful APIs
http和RESTful APIs HTTP协议RESTful APIs设计RESTful API设计实例 HTTP协议 HTTP(超文本传输协议)是用于分布式、协作式和超媒体信息系统的应用层协议。它是网页数据通讯的基础。工作原理简述如下: 客户端请求(Request…...
深度之眼(二十八)——神经网络基础知识(三)-卷积神经网络
文章目录 一、前言二、卷积操作2.1 填充(padding)2.2 步长2.3 输出特征图尺寸计算2.4 多通道卷积 三、池化操作四、Lenet-5及CNN结构进化史4.1 Lenet-5 一、前言 卷积神经网络–AlexNet(最牛)-2012 Lenet-5-大规模商用(1989) 二、…...
AI Infra简单记录
向量数据库的作用 1. 在AI大模型训练过程中,向量数据库可以有效提升数据检索、特征提取等任务的效率。 2、在AI大模型推理过程中,向量数据库为大模型提供外挂知识库,提升模型时效性与准确性,提供缓存能力,减少调用开…...
三英战吕布 | 第5集 | 温酒斩华雄 | 竖子不足与谋 | 三国演义 | 逐鹿群雄
🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 📌这篇博客分享的是《三国演义》文学剧本第Ⅰ部分《群雄逐鹿》的第5️⃣集《三英战吕布》的经典语句和文学剧本全集台词 文章目录 1.经典语句2.文学剧本台…...
【C语言】自定义类型:结构体
目录 1. 结构体类型的声明 1.1. 结构的一般声明 1.2. 结构的特殊声明 2. 结构体变量的创建和初始化 3. 结构体的自引用 4. 结构体内存对齐 4.1. 对其规则(面试考点) 4.2. 为什么存在内存对齐? 4.2.1. 平台原因(移植…...
算法金 | 决策树、随机森林、bagging、boosting、Adaboost、GBDT、XGBoost 算法大全
大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 决策树是一种简单直观的机器学习算法,它广泛应用于分类和回归问题中。它的核心思想是将复杂的决策过程分解成一系列简单的决…...
[每周一更]-(第103期):GIT初始化子模块
文章目录 初始化和更新所有子模块分步骤操作1. 克隆包含子模块的仓库2. 初始化子模块3. 更新子模块 查看子模块状态提交子模块的更改处理子模块路径错误的问题 该问题的缘由是因为:在写某些代码的时候,仓库中有些文件夹,只提交了文件夹名称到…...
单例模式---线程安全实现
文章目录 1.单例模式的特点😊2.单例模式两种实现🤣🤗😊2.1 饿汉式2.2 懒汉式 3.传统单例模式的线程安全问题4.解决方法4.1静态局部变量4.2加锁4.3双重检查锁(DCL)4.4pthread_once 1.单例模式的特点…...
Agent技术在现代软件开发与应用中的探索
一、引言 随着计算机科学的快速发展,Agent技术作为人工智能和分布式计算领域的重要分支,已经渗透到软件开发的各个方面。Agent技术通过赋予软件实体自主性和交互性,使得软件系统能够更加智能、灵活地响应环境变化和用户需求。本文将对Agent技…...
c语言中extern定义和引用其他文件的变量,(sublime text)单独一个文件编译不会成功
关键字extern的作用 这个很常见的都知道是定义一个外部变量或函数,但并不是简单的建立两个文件,然后在用extern 定义在另一个非最初定义变量的文件里 区分文件和编译运行的文件 例如,一个文件夹里有文件a.c和文件b.c,在sublime text中直接…...
时序数据中的孤立野点、异常值识别及处理方法
目录 参考资料 对时序数据做差分; 参考资料 [1] 离群点(孤立点、异常值)检测方法 2017.6;...
JetBrains PyCharm 2024 mac/win版编程艺术,智慧新篇
JetBrains PyCharm 2024是一款功能强大的Python集成开发环境(IDE),专为提升开发者的编程效率和体验而设计。这款IDE不仅继承了前代版本的优秀特性,还在多个方面进行了创新和改进,为Python开发者带来了全新的工作体验。 JetBrains PyCharm 20…...
MCU解决800V电动汽车牵引逆变器的常见设计挑战的3种方式
电动汽车 (EV) 牵引逆变器是电动汽车的。它将高压电池的直流电转换为多相(通常为三相)交流电以驱动牵引电机,并控制制动产生的能量再生。电动汽车电子产品正在从 400V 转向 800V 架构,这有望实现: 快速充电 – 在相同…...
《逆向投资 邓普顿的长赢投资法》
接下来跟大家一起学习《逆向投资 邓普顿的长赢投资法》。邓普顿被誉为20世纪最伟大的选股人之一,我非常确信林奇在他的《战胜华尔街》里也提到了邓普顿,可惜实在想不起来林奇是怎么形容邓普顿的。 邓普顿拥有70多年的投资生涯,在他晚年时曾总…...
C++中main函数的参数、返回值分别什么意思?main函数返回值跟普通函数返回值一样吗?
在C中,main函数是程序的入口点,即程序开始执行的地方。main函数可以有两种形式的签名(signature): 标准的main函数,不接受任何参数,也不返回任何值: int main() {// 代码... }带有参…...
Java程序员学习Go开发Higress的WASM插件
Java程序员学习Go开发Higress的WASM插件 契机 ⚙ 今年天池大赛有higress相关挑战,研究一下。之前没搞过go,踩了很多坑,最主要的就是tinygo打包,多方寻求解决无果,结论是tinygo0.32go1.19无法在macos arm架构下打包。…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
