首页 > 其他分享 >SPI、序列化、IO

SPI、序列化、IO

时间:2023-09-17 22:57:27浏览次数:29  
标签:Java NIO 模型 阻塞 SPI IO 序列化

1.SPI 即 Service Provider Interface ,字面意思就是:“服务提供者的接口”,我的理解是:专门提供给服务提供者或者扩展框架功能的开发者去使用的一个接口。

 

  • 序列化:将数据结构或对象转换成二进制字节流的过程
  • 反序列化:将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的过程

  OSI 七层协议模型中,表示层做的事情主要就是对应用层的用户数据进行处理转换为二进制流。反过来的话,就是将二进制流转换成应用层的用户数据。

  对于不想进行序列化的变量,使用 transient 关键字修饰。

 

IO 模型一共有 5 种:同步阻塞 I/O同步非阻塞 I/OI/O 多路复用信号驱动 I/O异步 I/O

BIO (Blocking I/O)

BIO 属于同步阻塞 IO 模型

  同步阻塞 IO 模型中,应用程序发起 read 调用后,会一直阻塞,直到内核把数据拷贝到用户空间。

NIO (Non-blocking/New I/O)

  Java 中的 NIO 于 Java 1.4 中引入,对应 java.nio 包,提供了 Channel , SelectorBuffer 等抽象。NIO 中的 N 可以理解为 Non-blocking,不单纯是 New。它是支持面向缓冲的,基于通道的 I/O 操作方法。 对于高负载、高并发的(网络)应用,应使用 NIO 。

Java 中的 NIO 可以看作是 I/O 多路复用模型。也有很多人认为,Java 中的 NIO 属于同步非阻塞 IO 模型。

AIO (Asynchronous I/O)

  AIO 也就是 NIO 2。Java 7 中引入了 NIO 的改进版 NIO 2,它是异步 IO 模型

  异步 IO 是基于事件和回调机制实现的,也就是应用操作之后会直接返回,不会堵塞在那里,当后台处理完成,操作系统会通知相应的线程进行后续的操作。

 

   

 

标签:Java,NIO,模型,阻塞,SPI,IO,序列化
From: https://www.cnblogs.com/cjhtxdy/p/17710029.html

相关文章

  • linux --- 自旋锁(spinlock_t)
    定义自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,”自旋”一词就是因此而得名。由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于......
  • 粒子群算法(Particle Swarm Optimization, PSO)
    ParticleSwarmOptimization算法原理参考:https://zhuanlan.zhihu.com/p/404198434Question使用PSO算法计算函数$f(x)=x_1^2+3x_2^2-x_1+2x_2-5$在\(x\in[-100,100]^2\)上的最小值CodeimportnumpyasnpfromtypingimportListParametersdim=......
  • MMDetection 整体构建流程(一)
    训练核心组件训练部分一般包括9个核心组件,总体流程是:任何一个batch的图片先输入到backbone中进行特征提取,典型的骨干网络是ResNet输出的单尺度或者多尺度特征图输入到neck模块中进行特征融合或者增强,典型的neck是FPN上述多尺度特征最终输入到head部分,一般都会......
  • 关于 Spartacus My Account 菜单的数据源 - NavigationNode
    有朋友询问Spartacus的MyAccount菜单里,Mycompany菜单项的数据源是什么?Spartacus启动时,我们观察到这个OCCAPI:/occ/v2/powertools-spa/cms/pages?lang=en&curr=USD在其响应数据里,观察到navigationnode里包含了一个叫做MyCompany的菜单项:Backoffice是SAPCom......
  • 【wp】文件上传phar反序列化
    题目文件泄露,得到两个文件:index.php<!DOCTYPEhtml><html><head><title>JustUpload!</title><metacharset="UTF-8"><style>.container{display:flex;flex-direction:......
  • HTTP安全响应头配置之X-XSS-Protection
    目的首先我们来理解一下什么是“X-XSS-Protection”,从字面意思上看,就是浏览器内置的一种XSS防范措施。没错,这是HTTP的一个响应头字段,要开启很简单,在服务器的响应报文里加上这个字段即可。浏览器接收到这个字段则会启用对应的XSS防范模块。这个header主要是用来防止浏览器中的......
  • 汇编-BIOS中断大全:“INT 10H ~ INT 1AH”
     BIOS中断大全:“INT10H~INT1AH”1、显示服务(VideoService——INT10H)00H—设置显示器模式01H—设置光标形状02H—设置光标位置03H—读取光标信息04H—读取光笔位置05H—设置显示页06H、07H—初始化或滚屏08H—读光标处的字符及其属性09H—在光标处按指定属性......
  • 从 MongoDb 集合中选择文档返回响应时出现不可序列化错误
    当从MongoDB集合中选择文档返回响应时出现不可序列化错误,可能是因为以下原因:数据类型不可序列化:检查文档中的数据类型是否可被序列化。某些数据类型,如日期对象或二进制数据,可能无法直接序列化为常见的数据格式(如JSON)。在这种情况下,您可能需要先对这些数据进行处理,将其转换为可序列......
  • jdk8之Optional类判空处理
    目录1Optional1.1简介1.2主要方法讲解1.2.1Optional对象创建1.2.2Optional.get()1.2.3Optional.isPresent()1.2.4Optional.ifPresent()1.2.5Optional.filter()1.2.6Optional.flatMap()1.2.7Optional.orElse()1.2.8Optional.orElseGet()1.2.9Optional.orElseThrow()1.3......
  • DVWA靶场通关-Command Injection(命令行注入)
    BruteForce(暴力(破解))、CommandInjection(命令行注入)、CSRF(跨站请求伪造)、     FileInclusion(文件包含)、FileUpload(文件上传)、InsecureCAPTCHA(不安全的验证码)、    SQLInjection(SQL注入)、SQLInjection(Blind)(SQL盲注)、XSS(DOM)(基于DOM树)、    XSS(Reflec......