NIO 三大组件

ops/2024/12/14 10:03:12/

NIO 基础

non-blocking-io 非阻塞IO

1. 三大组件

1.1 Channel & Buffer

channel 有一点类似与strem,他就是读写数据的双向通道,可以从channel将数据读入buffer,也可以将buffer写入channel,而之前的strem要么是输入,要么是输出,channel比stream更为底层

                                     

1.1.1常见的channel有

FileChannel

DatagramChannel

SocketChannel

ServerSocketChannel

1.1.2常见的buffer有

 ByteBuffer:

    MappedByteBuffer

    DirectByteBuffer

    HeapByteBuffer

ShortBuffer

IntBuffer

LongBuffer

FloatBuffer

DoubleBuffer

CharBuffer

1.2 Selector 选择器

selector 单从字面意思不好理解,需要结合服务器的设计演化来理解它的用途

多线程版本设计

缺点:

内存占用高

线程上下文切换成本高

只适合连接少的场景

线程池版本设计

缺点:

阻塞模式下,线程仅能处理一个sokcet链接

仅适合短连接场景

selector版设计

selector作用就是配合一个线程来管理多个channel,获取这些channel上发生的事件,channel工作在非阻塞模式下,不会让线程吊死在一个channel上。特别适合链接数特别多,但流量低的场景

调用selector的select()会阻塞直接channe发生了读写就绪事件,这些事件发送,select方法就会返回这些事件交给thread来处理。


http://www.ppmy.cn/ops/141784.html

相关文章

数据采集:各地区动态IP数据质量差异分析

“在当今信息化社会,数据采集已成为各行各业不可或缺的一部分,它为企业决策、市场分析、学术研究等提供了重要的数据支持。而在数据采集过程中,动态IP作为一种频繁更换IP地址的代理服务,因其能够模拟不同地理位置的用户访问、突破…

算法2(蓝桥杯19)-合并两个有序链表

问题:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 解题思路: 创建一个虚拟节点,循环比较l1、l2链表各节点的大小,将较小的节点追加到虚拟节点后,返回新链表 1、…

quartz 架构详解

‌Quartz是一个开源的作业调度框架,完全由Java编写,主要用于定时任务的调度和管理。Quartz的架构主要包括以下几个核心组件‌: 1.‌调度器(Scheduler)‌:调度器是Quartz的核心组件,负责管理Qua…

MySQL有哪些高可用方案?

大家好,我是锋哥。今天分享关于【MySQL有哪些高可用方案?】面试题。希望对大家有帮助; MySQL有哪些高可用方案? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MySQL 高可用方案旨在确保数据库系统的高可靠性、低宕机时间、以及在硬件故障…

人工智能大语言模型起源篇(二),从通用语言微调到驾驭LLM

上一篇:《人工智能大语言模型起源篇(一),从哪里开始》 (5)Howard 和 Ruder 于2018年发表的《Universal Language Model Fine-tuning for Text Classification》,https://arxiv.org/abs/1801.06…

微服务-01【续】

1.OpenFeign 上篇文章我们利用Nacos实现了服务的治理,利用利用RestTemplate实现了服务的远程调用。但是远程调用的代码太复杂了: 而且这种调用方式,与原本的本地方法调用差异太大,编程时的体验也不统一,一会儿远程调用…

43 搜索二维矩阵

43 搜索二维矩阵 43.1 搜索二维矩阵解决方案 解决思路: 将二维矩阵映射为一维数组的形式: 如果矩阵有m行和n列,那么二维矩阵的下标(row,col)可以通过以下公式映射为一维下表index: i n d e x r o w n c o l index row n co…

【LeetCode】每日一题 2024_12_13 K 次乘运算后的最终数组 I(暴力)

前言 每天和你一起刷 LeetCode 每日一题~ 小聊两句 1、今天是 12.13 南京大屠杀国家公祭日。铭记历史,勿忘国耻。 2、今天早上去看了 TGA 年度游戏颁奖,小机器人拿下了年度最佳游戏,所有人都震惊了,大伙纷纷问到,谁…