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模型
相关文章
基础联系-4
基础联系-4
66 1
基础练习-5
基础练习-5
68 0
|
3月前
|
Kubernetes 监控 调度
k8s基础
k8s基础
49 0
|
编译器 C语言 C++
C++程序基础
本文介绍了C++中的数据类型,输入输出和函数知识。
53 0
|
安全 数据安全/隐私保护
社工基础
这次带来的是 社工的心理学的欺骗思路 社工,全程为社会工程学,起源于凯文·米特尼克的《反欺骗的艺术》,
|
JavaScript 前端开发 API
Typesctipt基础(二)
Typesctipt基础(二)
144 0
|
机器学习/深度学习 人工智能 算法
|
存储 C#
C#基础03
C#基础03
138 0
C#基础03
|
开发框架 安全 .NET
C#基础04
C#基础04
132 0
C#基础04
|
存储 Java 编译器
C/C++ - 基础篇(下)
C/C++ - 基础篇(下)
242 0
C/C++ - 基础篇(下)

热门文章

最新文章