摘要: / /服务进程 / 精灵进程 运行时间长,不需要与用户交互,后台执行 守护进程编程流程: 1.fork(),创建子进程,退出父进程 2.setsid(),创建新会话 3.fork(),退出父进程,失去会话首进程,组长进程的身份 4.chdir(),改变工作路径 “/ ” 5.umask(),掩码清零 阅读全文
posted @ 2022-10-21 01:23 Dhw不爱Cpp 阅读(26) 评论(0) 推荐(0)
摘要: 生产者/消费者问题,也被称为有限缓冲问题。可以描述为:两个或者更多的线程共享同一个缓冲区,其中一个或多个线程作为“生产者“会不断的向缓冲区中添加数据,另一个或者多个线程作为”消费者"从缓冲区中取走数据 生产者和消费者必须互斥的使用缓冲区; 缓冲区空的时候,消费者不能读取数据; 缓冲区满的时候,生产者 阅读全文
posted @ 2022-10-21 01:22 Dhw不爱Cpp 阅读(101) 评论(0) 推荐(0)
摘要: 进程间通讯(IPC):管道、信号量、共享内存、消息队列、套接字 管道:有名 无名(有名无名的区别),在内存中写入,通讯方式:半双工 信号量:特殊变量(一般取值大于等于0)例如0、1 代表资源状态 例如3:代表可访问资源个数 可以对其值进行改变 减一:代表获取资源,一般称为p操作,有可能会发生阻塞,等 阅读全文
posted @ 2022-10-21 01:20 Dhw不爱Cpp 阅读(30) 评论(0) 推荐(0)
摘要: 复制进程 fork pid_t fork(void) 函数返回类型 pid_t 实质是 int 类型 fork函数会生成一个新的进程,调用fork函数的进程称为父进程,新生成的进程称为子进程,在父进程中返回子进程的pid,在子进程中返回0,fork失败则返回-1 注: 地址一样,指的是逻辑地址,程序 阅读全文
posted @ 2022-10-21 01:12 Dhw不爱Cpp 阅读(85) 评论(0) 推荐(0)
摘要: int main(int argc,char* argv[],char* envp[]) ①argc 参数个数 ②argv* 参数内容 ③envp 环境变量 阅读全文
posted @ 2022-10-21 01:07 Dhw不爱Cpp 阅读(22) 评论(0) 推荐(0)
摘要: 首先来介绍一些简单的概念: 1.稳定:如果a原本在b的前面,且a = b,排序后a仍然在b的前面 不稳定:如果a原本在b的前面,且a = b,排序后a可能出现在b的后面 2.十大经典排序算法基本可以分为两类: 非线性时间排序:通过比较来确定元素间的相对次序,时间复杂度最快为O(logN) 线性时间排 阅读全文
posted @ 2022-10-05 22:08 Dhw不爱Cpp 阅读(51) 评论(0) 推荐(0)
摘要: 首先区别一些概念: a.定义一个函数为虚函数,不代表函数为不被实现的函数 b.定义某个函数为虚函数,是为了允许用基类的指针来调用子类的这个函数 c.定义一个函数为纯虚函数,才代表这个函数为不被实现的函数 接着来详细介绍虚函数和纯虚函数: 1.虚函数,“虚”就“虚”在所谓推迟联编或动态联编上,一个类函 阅读全文
posted @ 2022-10-04 23:50 Dhw不爱Cpp 阅读(127) 评论(0) 推荐(0)
摘要: 二分法的使用: 有序数组,且数组中无重复元素,那么就可以考虑使用二分法。 其难点主要在于区间的确立,是while(left<right)呢,还是while(left<=right)呢? 在定义新的right时,是right = middle -1呢还是right = middle呢? 解决方法:坚持 阅读全文
posted @ 2022-09-29 20:16 Dhw不爱Cpp 阅读(77) 评论(0) 推荐(0)