- 博客(140)
- 收藏
- 关注
原创 leetcode 2583.二叉树中第k大的值
输入:root = [5,8,9,2,1,3,7,4,6], k = 2。输入:root = [1,2,null,3], k = 1。解释:最大的层和是 3。
2024-10-01 16:11:11 104
原创 leetcode 513 找到左下角的值
解释:最大宽度出现在树的第 3 层,宽度为 4 (5,3,null,9)。输入: [1,2,3,4,null,5,6,null,null,7]输入:root = [1,3,2,5,3,null,9]
2024-09-30 12:28:01 218
原创 多路复用IO
本质上就是通过复用一个进程来处理多个IO请求基本思想:由内核来监控多个文件描述符是否可以进行I/O操作,如果有就绪的文件描述符,将结果告知给用户进程,则用户进程在进行相应的I/O操作类似于下图的老师检查学生作业。
2024-09-26 20:01:19 999
原创 阻塞型IO与非阻塞型IO
IO的本质是基于操作系统接口来控制底层的硬件之间数据传输,并且在操作系统中实现了多种不同的IO方式(模型),比较常见的有下列三种。
2024-09-26 18:58:11 365
原创 线程(2):补充的最重要的重点!!!!
线程是操作系统调度的最小单元,有自己的栈空间,可以按照既定的代码逐步的执行,但是如果每个线程间都孤立的运行,那就会造资源浪费。所以在现实中,我们需要这些线程间可以按照指定的规则共同完成一件任务,所以这些线程之间就需要互相协调,这个过程被称为线程的通信。线程通信就是当多个线程共同操作共享的资源时,互相告知自己的状态以避免资源争夺。创建多个线程时,一般由主线程统一创建,并等待释放资源或者分离线程,不要。示例代码:进程A和进程B执行不同的任务。线程互斥锁的初始化方式主要分为两种。线程互斥锁的操作主要分为。
2024-09-23 20:45:47 774
原创 线程1(重点知识)
线程是进程中的⼀个执行单元,负责当前进程中程序的执行,⼀个进程中至少有⼀个线程⼀个进程中是可以有多个线程可以简单理解: 进程 = 进程资源 + 主线程 + 子线程+…
2024-09-23 19:55:08 714
原创 进程间的通信3-信号量
信号量的起源来自于信号灯信号量: 由内核维护的整数,其值被限制为大于或等于01.将信号量设置成一个具体的值2.在信号量当前值的基础上加上一个数值3.在信号量当前值的基础上减上一个数值4.等待信号量的值为 01.一般信号量分为二值信号量与计数信号量1.二值信号量:一般指的是信号量的值为1,可以理解为只对应一个资源2.计数信号量:一般指的是值大于等于2 ,可以理解为对应多个资源在 Linux 系统中查询信号量使用ipcs -s。
2024-09-20 21:01:07 432
原创 进程间的通信 2 消息队列
消息队列就是一个消息的列表,进程可以在消息队列中添加消息和的读取消息消息队列具有FIFO的特性,具有无名管道与有名管道各自的优势,可以支持任意两个进程的进程间通讯消息队列是属于 Sytem V IPC 的一种,由内核维护与管理,通过 ipcs -q 查看。
2024-09-20 18:33:44 714
原创 进程的通信1:管道 信号
管道分为无名管道与有名管道无名管道用于父子进程之间通讯有名管道用于任意进程之间的通讯无名管道属于单向通讯无名管道只能用于父子进程通讯无名管道发送端叫做写端,接收端叫做读端无名管道将读端与写端抽象成两个文件进行操作,在无名管道创建成功之后,则会返回将读端与写端的文件描述符存入数组有名管道是文件系统中可见的文件,但是不占用磁盘空间,仍然在内存中。可以通过 mkfifo命令创建有名管道(在共享目录不能使用mkfifo)有名管道与无名管道一样,在应用层是基于文件接口进行操作。
2024-09-19 20:54:53 604
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人