
C++
文章平均质量分 70
zyl51_
这个作者很懒,什么都没留下…
展开
-
《设计模式巩固学习》
昨天面试完字节后发现自己的《设计模式》学习不到位好的软件设计注重的是复用,而变化是复用的天敌。原创 2023-10-15 01:57:16 · 454 阅读 · 0 评论 -
组件协作模式
定义一个操作中的算法的骨架(稳定),而将一些步骤延迟(变化)到子类中。Template Mthod 使得子类可以不改变(复用)一个算法的结构即可重定义(override 重写)该算法某些特定步骤。模式是一种非常基础性的设计模式,在面向对象系统中有着大量的应用。它用最简洁的机制(虚函数的多态性)为很多应用程序框架提供了灵活的扩展点,是代码复用方面的基本实现结构。除了可以灵活应对子步骤的变化外,“不要调用我,让我来调用你”的反向控制结构是的典型应用。在具体实现方面,被。原创 2023-10-15 01:51:25 · 370 阅读 · 0 评论 -
重新认识面向对象
点、直线和矩形的类public:int x;int y;int height;MainForm类private:public:void run();// 画直线i ++ )drawLine(red,// 画矩形i ++ )drawRect(red,不难发现我们如果需要增加一个画圆形的方法就要修改MainForm。原创 2023-10-15 00:32:42 · 256 阅读 · 0 评论 -
《C++高并发服务器笔记——第三章Linux多线程开发》
《C++高并发服务器笔记——第三章》原创 2023-04-11 09:01:38 · 633 阅读 · 0 评论 -
2.22、setitimer 定时器函数
功能:设置定时器(闹钟)。可以替代alarm函数。精度微妙us,可以实现周期性定时 - 参数: - which : 定时器以什么时间计时ITIMER_REAL : 真实时间,时间到达,发送 SIGALRM 常用ITIMER_VIRTUAL : 用户时间,时间到达,发送 SIGVTALRMITIMER_PROF : 以该进程在用户态和内核态下所消耗的时间来计算,时间到达,发送 SIGPROF - new_value : 设置定时器的属性 struct itimerval {原创 2023-03-28 20:01:21 · 234 阅读 · 0 评论 -
2.21、alarm函数
功能:设置定时器(闹钟)。函数调用,开始倒计时,当倒计时为 0 的时候,函数会给当前的进程发送一个信号:SIGALARM - 参数:seconds : 倒计时的时长,单位:秒。如果参数为 0 ,定时器无效(不进行倒计时,不发信号)。取消一个定时器,通过 alarm(0)。- 返回值: - 之前没有定时器,返回 0 - 之前有定时器,返回之前的定时器剩余的时间 - SIGALARM :默认终止当前的进程,每一个进程都有且只有唯一的一个定时器。alarm(10);原创 2023-03-28 18:50:32 · 213 阅读 · 0 评论 -
2.20、kill、raise、abort函数
功能:给任何的进程或者进程组pid , 发送任何的信号 sig - 参数: - pid : > 0 : 将信号发送给指定的进程 = 0 : 将信号发送给当前的进程组 = - 1 : 将信号发送给每一个有权限接收这个信号的进程 < - 1 : 这个pid = 某个进程组的ID取反 ( - 12345 ) - sig : 需要发送的信号的编号或者是宏值, 0 表示不发送任何信号 kill(getppid() , 9);原创 2023-03-28 16:27:43 · 240 阅读 · 0 评论 -
2.10、进程间通信简介
【代码】2.10、进程间通信简介。原创 2023-03-14 19:33:56 · 115 阅读 · 0 评论 -
2.9、waitpid函数
功能:回收指定进程号的子进程,可以设置是否阻塞。参数: - pid : pid > 0 : 某个子进程的pidpid = 0 : 回收当前进程组的所有子进程pid = - 1 : 回收所有的子进程,相当于 wait() (最常用)pid < - 1 : 某个进程组的组id的绝对值,回收指定进程组中的子进程 - options:设置阻塞或者非阻塞 0 : 阻塞。原创 2023-03-14 18:53:53 · 194 阅读 · 0 评论 -
2.7、进程退出、孤儿进程、僵尸进程
父进程运行结束,但子进程还在运行(未运行结束),这样的子进程就称为孤儿进程。每当出现一个孤儿进程的时候,内核就把孤儿进程的父进程设置为init,而init进程会循环地wait()它的已经退出的子进程。这样,当一个孤儿进程凄凉地结束了其生命周期的时候,init进程就会代表党和政府出面处理它的一切善后工作。因此孤儿进程并不会有什么危害每个进程结束之后, 都会释放自己地址空间中的用户区数据,内核区的PCB没有办法自己释放掉,需要父进程去释放。进程终止时,父进程尚未回收,子进程残留资源(PCB)原创 2023-03-12 14:15:23 · 153 阅读 · 0 评论 -
2.6、exec函数族
exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件。exec函数族的函数执行成功后不会返回,因为调用进程的实体,包括代码段,数据段和堆栈等都已经被新的内容取代,只留下进程ID等一些表面上的信息仍保持原样,颇有些神似“三十六计”中的“金蝉脱壳”。看上去还是旧的躯壳,却已经注入了新的灵魂。只有调用失败了,它们才会返回-1,从原程序的调用点接着往下执行。- 参数: - path:需要指定的执行的文件的路径或者名称。原创 2023-03-10 18:32:55 · 241 阅读 · 0 评论 -
2.5、父子进程关系以及GDB多进程调试
使用 GDB 调试的时候,GDB 默认只能跟踪一个进程,可以在 fork 函数调用之前,通过指令设置 GDB 调试工具跟踪父进程或者是跟踪子进程,默认跟踪父进程。原创 2023-03-04 13:48:07 · 198 阅读 · 0 评论 -
2.4、父子进程虚拟地址空间
子进程会复制父进程用户区数据,内核区也会进行复制,pid不一样。原创 2023-03-04 12:16:36 · 620 阅读 · 0 评论 -
2.3、进程创建
系统允许一个进程创建新进程,新进程即为子进程,子进程还可以创建新的子进程,形成进程树结构模型。返回值:成功:子进程中返回 0,父进程中返回子进程ID失败:返回 -1失败的两个主要原因:当前系统的进程数已经达到了系统规定的上限,这时errno的值被设置为EAGAIN系统内存不足,这时errno的值被设置为ENOMEM函数的作用:用于创建子进程返回值:成功: fork() 的返回值返回两次,一次在父进程中,一次在子进程中,在父进程中返回创建子进程的ID,在子进程中返回 0 ,原创 2023-03-04 11:16:34 · 142 阅读 · 0 评论 -
2.2、进程状态转换
进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。在三态模型中,进程状态分为三个基本状态,即。来指定显示信息更新的时间间隔,在。在五态模型中,进程分为。原创 2023-03-03 16:22:12 · 278 阅读 · 0 评论 -
《C++高并发服务器》
第3章、Linux多线程开发(点此进入)原创 2023-03-02 22:31:34 · 713 阅读 · 0 评论 -
2.1、进程概述
1. 程序和进程2. 单道、多道程序设计3. 时间片4. 并行和并发并行并发5.进程控制块(PCB)原创 2023-03-02 22:19:19 · 176 阅读 · 0 评论 -
《C++高并发服务器笔记——第二章Linux多进程开发》
学习地址原创 2023-03-02 22:04:05 · 716 阅读 · 0 评论 -
《C++笔试高频考点》
编译器预处理阶段查找头文件的路径不一样。原创 2023-01-07 20:54:11 · 128 阅读 · 0 评论 -
《C++高并发服务器笔记——第一章Linux系统编程入门》
接下来进行预处理操作(test.c为需要预处理的源代码,test.i为要生成的目标代码)汇编操作(生成汇编代码)生成而二进制文件将生成的代码进行链接定义指定的宏(DEBUG为需要定义的宏)gcc test . c - o test - DDEBUG //或者 gcc test . c - o test - D DEBUG展示全部警告实际操作,将add.c div.c mult.c sub.c打包生成我们的静态库,头文件head.h不需要先生成.o文件生成我们的静态库。原创 2023-01-02 16:41:01 · 1112 阅读 · 1 评论 -
算法用处总结
算法原创 2022-11-26 16:19:09 · 446 阅读 · 0 评论 -
《计算机算法设计与分析》
大学学习算法原创 2022-11-20 16:59:57 · 186 阅读 · 0 评论 -
大二c++实验课学习类的继承的总结
类的三大继承原创 2022-04-18 11:44:22 · 845 阅读 · 0 评论