Linux系统编程day4知识点总结回顾1

1.守护进程

在这里插入图片描述
在这里插入图片描述
创建一个会话,等于创建一个守护进程
会长就是一个守护进程

1.1 创建一个守护进程代码示例

在这里插入图片描述

1.2 创建一个守护进程模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2.1 注册捕捉信号

在这里插入图片描述

1.2.2 核心操作代码

在这里插入图片描述

2.主线程和子线程

2.1 主线程和子线程的基本概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 主线程和子线程共享的与不共享的部分

在这里插入图片描述

2.3 多线程和多进程区别

在这里插入图片描述

2.4 补充知识点

指针函数:代表函数的返回值是一个指针
函数指针:需要指向一个函数的地址,(大多时候 与 回调函数相关)

3 创建线程

3.1 创建线程函数- pthread-create()

在这里插入图片描述在这里插入图片描述

3.2 如何创建子线程代码示例

在这里插入图片描述

3.2.1 上述代码存在的问题:

pcb同时竞争资源,子线程没有抢过父线程,当父线程运行时结束时,子线程消失了。且父子线程用的同一个地址空间,因此子线程还没有执行就消失了。

解决办法: 父进程设置

 sleep(2)  //睡两秒钟

3.3 gcc 编译的时候需要注意的点

需要在后面加 -lpthread 文件

-l 指定库的名字  
-L 指定库的路径

在这里插入图片描述

3.4 在分别打印5个线程的id时,出现的问题

传出的地址,是不变的。但当抢夺cpu资源时会出现问题

3.4.1 有问题代码

在这里插入图片描述

3.4.2 问题分析

在这里插入图片描述

3.4.3 改进之后代码

在这里插入图片描述
在这里插入图片描述
2019/3/5 胡云层 于南京

猜你喜欢

转载自blog.csdn.net/qq_40858438/article/details/88220525