JavaIO基础01-基础感念

简介: 1、同步与异步同步与异步主要是从消息通知机制角度来说的。同步没有通知,异步有知。2、阻塞与非阻塞阻塞与非阻塞主要是程序等待消息通知时的状态角度来说的。

1、同步与异步

同步与异步主要是从消息通知机制角度来说的。同步没有通知,异步有知。

2、阻塞与非阻塞

阻塞与非阻塞主要是程序等待消息通知时的状态角度来说的。阻塞调用是指调用结果返回之前,当前线程会被挂起,一直处于等待消息通知,不能够执行其他业务。

3、同异步与阻非塞

(1)同步阻塞
下载一个文件,下载人不做任何事情,看着进度条下载完成。
(2)同步非阻塞
下载一个文件,下载人不做任何事情,等待下载完成的通知。
(3)异步阻塞
下载一个文件,下载人做其他事情,隔断时间看着进度是否下载完成。
(4)异步非阻塞
下载一个文件,下载人做其他事情,等待下载完成的通知。

4、LINUX IO 模型

4.1、LINUX IO 操作步骤

网络IO的本质是socket的读取,socket在linux系统被抽象为流,IO可以理解为对流的操作。例如当一个read操作发生时,它会经历两个阶段:
第一阶段:等待数据准备。
第二阶段:将数据从内核拷贝到进程中。
对于socket流而言,
第一步:通常涉及等待网络上的数据分组到达,然后被复制到内核的某个缓冲区。
第二步:把数据从内核缓冲区复制到应用进程缓冲区。

4.2、LINUX IO 模型分类

(1)同步模型(synchronous IO)

    阻塞IO(bloking IO)
    非阻塞IO(non-blocking IO)
    多路复用IO(multiplexing IO)
    信号驱动式IO(signal-driven IO) 

(2)异步IO(asynchronous IO)

4.3、Linux IO模型矩阵

image.png

4.4、Linux 阻塞IO

image.png

4.5、Linux 同步非阻塞IO

image.png

4.6、Linux 同步非阻塞IO多路复用

image.png

4.7、Linux 异步信号驱动

image.png

4.8、Linux 总结

5个IO模型
相关文章
|
7月前
|
缓存 Java API
IO流【IO流技术介绍、 IO流的经典写法、 IO流新语法经典写法、Java中流的概念细分 】(一)-全面详解(学习总结---从入门到深化)
IO流【IO流技术介绍、 IO流的经典写法、 IO流新语法经典写法、Java中流的概念细分 】(一)-全面详解(学习总结---从入门到深化)
110 0
|
2月前
|
Java
【编程基础知识】《Java 中的神秘利器:this 关键字深度解析》
《Java 中的神秘利器:this 关键字深度解析》深入探讨了 Java 中 this 关键字的作用、用法及应用场景。文章详细解释了 this 如何指向当前对象、区分成员变量和局部变量、调用构造函数、实现方法链式调用和传递当前对象。通过阅读本文,读者将全面掌握 this 关键字的巧妙应用,提升 Java 编程技能。
42 2
|
5月前
|
设计模式 Python
深度揭秘!Python元类:掌握它,让你的代码拥有创造类的能力
【7月更文挑战第6天】Python元类探秘:**元类是类的类,用于控制类的创建。通过定义元类,可自定义类的行为,如动态添加方法或改变继承结构。示例中,`my_metaclass`在创建类时添加`new_method`。元类强大且适用于高级编程,如动态修改、注册类或实现设计模式。理解并善用元类能提升Python编程技巧。
48 0
|
6月前
|
Java
JavaSE——面向对象基础(4/4)-成员变量和局部变量的区别、面向对象综合案例(电影信息系统)
JavaSE——面向对象基础(4/4)-成员变量和局部变量的区别、面向对象综合案例(电影信息系统)
18 0
|
7月前
|
JavaScript Java 测试技术
基于Java的无纸化学习平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的无纸化学习平台的设计与实现(源码+lw+部署文档+讲解等)
43 0
|
存储 分布式计算 监控
【Java技术指南】「Java8技术盲区」函数接口字典:看看还有哪些你所不知道函数接口?(技术小贴士)
【Java技术指南】「Java8技术盲区」函数接口字典:看看还有哪些你所不知道函数接口?(技术小贴士)
158 0
【Java技术指南】「Java8技术盲区」函数接口字典:看看还有哪些你所不知道函数接口?(技术小贴士)
|
jenkins 测试技术 持续交付
python接口自动化(三十六)-封装与调用--流程类接口关联续集(详解)
上一篇已经给大家都介绍过了流程类接口关联,但是由于博客的登录机制改变,所以没有办法给小伙伴们实战演练一下,那么这篇就按照上一篇计划的用jenkins来给小伙伴们演示一下流程类接口的封装和调用,其实很简单,就是用上一篇和前边这篇传送门的代码稍稍修改即可。不知道你自己练习了么,如果练习了,可以看看和我有什么不同,没练习的看看自己思路和我有啥不一样。好了废话少说进入主题
202 0
python接口自动化(三十六)-封装与调用--流程类接口关联续集(详解)
|
C语言 C++
【异常机制高级讲解】异常与多态综合案例
【异常机制高级讲解】异常与多态综合案例
111 0
|
Java
java学习第六天笔记-方法129-综合联系-飞机票方法封装
java学习第六天笔记-方法129-综合联系-飞机票方法封装
60 0
java学习第六天笔记-方法129-综合联系-飞机票方法封装
|
Java
java学习第六天笔记-方法128-综合联系-飞机票方法封装
java学习第六天笔记-方法128-综合联系-飞机票方法封装
79 0
java学习第六天笔记-方法128-综合联系-飞机票方法封装