- 博客(20)
- 收藏
- 关注
原创 Linux | 信号
子进程在终止时会给父进程发SIGCHLD信号,该信号的默认处理动作是忽略,父进程可以自定义SIGCHLD信号的处理函数,这样父进程只需专心处理自己的工作,不必关心子进程了,子进程终止时会通知父进程,父进程在信号处理函数中调用wait清理子进程即可。在执行信号捕捉方法之前先置0,在调用。当我们自定义捕捉这个信号后发现,自定义的动作被一直执行,因为我们的溢出标志位没有改变,所以操作系统一直在给进程发送信号,所以这里一直在执行自定义捕捉的动作。每一次登陆,只允许一个进程是前台进程,可以允许多个进程是后台进程。
2023-12-02 19:34:52 59
原创 C++ | 特殊类设计
优点:第一次使用实例对象时,创建对象。多个单例实例启动顺序自由控制。缺点:可能会导致进程启动慢,且如果有多个单例类对象实例启动顺序不确定。
2023-11-28 18:12:12 52
原创 C++ | 多态
重载:两个函数在同一作用域下,函数名相同,参数不同重定义:父子类域下,子类定义了父类同名的成员,子类会隐藏父类成员重写:父子类域下,两个函数的返回值,函数名,参数都一样(协变除外),且两个函数都是虚函数。
2023-11-26 22:54:24 50 1
原创 C++ | 类型转换
因为这里我们把n用const修饰了,编译器会把这个n的值放到寄存器中,我们每次访问n的时候,编译器会直接到寄存器中取出n的值。要想使用dynamic_cast,父类必须要有虚函数,有了虚函数就会生成虚表,才能分辨我们的父类指针指向的是父类还是子类.dynamic_cast用于将一个父类对象的指针/引用转换为子类对象的指针或引用(动态转换)我们可以使用volatile关键字修饰n,这个关键字修饰的对象,每次都会去内存中取值。用于不相关类型的转换,可以将一种类型转换为另一种不同的类型。用于两个相关类型的转换。
2023-11-22 10:07:39 18
原创 Linux | 进程间通信
对于共享内存,当我们的进程A正在写入,写入了一部分,就被进程B读走了,导致双方发和收的数据不完整——数据不一致问题。匿名管道的生命周期随进程,当通信的进程都退出,管道随即被操作系统回收.在操作系统中,所有的IPC资源,都是整合进操作系统的IPC模块中的。匿名管道只能用于具有血缘关系的进程通信,常用于父子。命名管道可以用于两个毫不相关的进程进行通信。因为进程具有独立性,导致进程通信成本较高。两个或多个进程实现数据层面的交互。信号量为什么是进程通信的一种?管道是基于文件级别的通信方式。
2023-11-21 22:48:19 18 1
原创 c++ | 继承
子类和父类有同名成员(成员函数和成员变量),子类的成员隐藏了父类的成员.父子类域中,函数名或成员变量名相同就构成隐藏。在子类成员函数中,可以使用 基类::基类成员 显示访问。b.B::fun();b.A::fun();return 0;
2023-11-17 21:45:15 23
原创 Linux | 基础IO
在进程中每打开一个文件,都会创建有相应的文件描述信息struct file,这个描述信息被添加在pcb的struct files_struct中,以数组的形式进行管理,随即向用户返回数组的下标作为文件描述符,用于操作文件。Super Block:文件系统的基本信息,里面包含整个分区的基本使用情况:一共多少个组,每个组大小,每个组inode,每个组其起始node,文件系统的类型与名称等。inode Table:单个文件的所有属性,128字节,在linux中,文件的属性中不包含文件名称.——文件系统的块大小。
2023-11-15 12:49:19 24 1
原创 【数据结构】 | 快速排序
快速排序是目前综合性能最好的排序,像腾讯微软等知名IT公司都喜欢考这个。在面试中面试官常常会让你手写一个快速排序。因此今天就带大家来深入了解一下快速排序的多种写法(hoare版本,挖坑法,前后指针法),还有快排的非递归写法(校招常考快排的时间复杂度分析,快排的缺陷,以及优化方法。确定基准数key调整区间,使调整后的区间满足区间左边的数都小于等于基准数区间右边的书都大于等于基准数。将基准数左右两边划分为新的区间,重复第一第二步,直至整个区间有序。
2023-04-11 17:48:52 873 9
原创 二分查找算法 | 你真的搞懂二分了吗?
我身边的人都认为二分查找很简单,但事实真是如此吗?不,并不简单。二分算法有着许多的边界问题,当你写着代码一不小心就会陷入死循环。本篇文章会深入细节详细介绍整数二分算法以及使用二分算法步骤和力扣题目练习,并且还会给出二分查找算法模板,下面就然我们来看看吧。很多人认为二分算法的本质是单调性有单调性的题目一定可以二分,但是我可以二分的题目不一定非得有单调性,注意这句话非常重要,就是有单调性的话我可以二分,但是没有单调性的话我也有可能可以二分。那么二分算法的本质是什么呢?,二分算法的本质其实是边界。
2023-04-04 23:08:36 1354 28
原创 数据结构 | 堆的实现 向上调整算法 向下调整算法 堆排序
本次我们学习到了堆的相关知识,堆本质上就是一个数组。然后我们又学习了【向上调整算法】和【向下调整算法】,知道了它们的时间复杂度【向上调整算法】它的时间复杂度为O(NlogN),【向下调整算法】它的时间复杂度为O(N);所以平时要优先使用向下调整算法。接着我们又学习了堆排序,它是八大排序算法之一,它的时间复杂度为O(NlogN);最后我们学习了TOP-K问题–即求数据结合中前K个最大的元素或者最小的元素。以上就是本文的全部内容了,若有问题请在评论区留言,觉的好的话就留下你的三连吧。
2023-04-03 22:06:40 824 13
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人