摘要:
前言 本文将会向你介绍互斥的概念,如何加锁与解锁,互斥锁的底层原理是什么 线程ID及其地址空间布局 每个线程拥有独立的线程上下文:一个唯一的整数线程ID, 独立的栈和栈指针,程序计数器,通用的寄存器和条件码。 和其他线程共享的进程上下文的剩余部分:整个用户虚拟地址空间,那就是上图的数据段,堆以及所有 阅读全文
摘要:
前言 本文将会向你介绍线程控制(创建(请见上文),终止,等待,分离) 线程控制 线程终止 pthread_t pthread_self(void); 获取线程自身的ID 如果需要只终止某个线程而不终止整个进程,可以有三种方法: 1. 从线程函数return。这种方法对主线程不适用,从main函数re 阅读全文
摘要:
前言 本文将会向你介绍线程的概念,以及线程是怎么被创建的 线程概念 一、进程是承担系统资源的基本实体,线程是cpu调度的基本单位 首先,地址空间在逻辑上相当于进程的资源窗口, 每个进程都有这样一个资源窗口。通过地址空间+页表获取自身的代码和数据 那么有没有可能创建一个“进程”只需要创建一个pcb进程 阅读全文
摘要:
前言 本文将会向你介绍匿名管道的原理以及用法,以及管道的使用存在的情况和管道的特性 文章重点 重点:匿名管道的原理,使用情况,以及特性 进程间通信 进程间通信的本质: 让不同的进程先看到同一份资源,这个资源不能由A,B进程提供,但能够被进程申请,资源通常都是由OS提供 进程间通信目的: 数据传输:一 阅读全文
摘要:
前言 本文将会向你介绍文件系统与软硬链接 文章重点 本文将会先向你介绍文件是如何在磁盘上进行管理的,关于文件的管理将会从管理属性和管理内容两方面来谈,最后会向你介绍软硬链接的概念 文件在磁盘中的管理 首先,假设一个磁盘200GB,我们首要做的事情就是对它进行区域划分,方便管理(类似于国家治理,我们也 阅读全文
摘要:
前言 本文将会向你介绍文件在磁盘上是如何被管理的 磁盘的物理存储结构 系统中的文件分为被打开的文件,和没被打开的文件,被打开的文件在内存中进行管理,而没有被打开的文件则在磁盘中进行管理 同样地,也需要对这些没被打开的文件进行分门别类,在磁盘中按规律保存 方便用户随时读取 那么在磁盘中的文件又是如何去 阅读全文
摘要:
前言 本文将会向你介绍哈希概念,哈希方法,如何解决哈希冲突,以及闭散列与开散列的模拟实现 1. 哈希概念 顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即 O( l o g 2 N 阅读全文
摘要:
前言 本文将会向你介绍红黑树的概念、性质,以及如何手撕红黑树 1 文章重点 文本首先引入红黑树的概念和性质,性质非常重要对于后面的插入操作来说,文章的核心放在了插入部分,另外看插入部分之前记得看声名和节点的定义哦~ 2 引入红黑树 2.1概念 首先红黑树是一颗二叉搜索树,每个节点都有颜色,红色或黑色 阅读全文
摘要:
前言 本文将会向你介绍set与map的主要用法 set详解 int main() { set<string> s; vector<string> v = { "Fan1","Fan2", "Fan3", "Fan4" }; for (auto e : v) { s.insert(e); } stri 阅读全文
摘要:
前言 本文将会向你介绍什么是快速选择算法,(用两道例题来讲解)算法原理是什么 引入 快速选择算法和快速排序算法都是基于分治思想的算法,它们的基本原理是类似的,都是通过将数组分成两部分,然后递归地处理这两部分。 快速选择算法和快速排序算法的主要区别在于它们的应用场景和目的。 快速排序算法的目的是对整个 阅读全文