一、线程概要
1、线程是一个轻量级的进程
- 线程本质就是一个进程
- 线程和进程不完全一致,轻量指空间,进程空间和线程空间管理方法不同
2、进程和线程的区别
- 线程本质是进程,线程是任务创建、调度、回收的过程
- 进程空间:文本段 + 数据段 + 系统数据段
- 线程空间:
- 线程必须位于进程空间内部,没有进程,线程无法独立存在
- 一个进程中的所有线程共享文本段+数据段+堆区,独享栈区
- 线程独享的栈区默认为8M
- 一个进程中的多个线程切换调度任务时,资源开销比较小
- 进程和线程区别:
- 线程是CPU任务调度的最小单元
- 进程是操作系统资源分配的最小单元
3、多进程和多线程的优缺点


4、线程的调度
与进程调度保持一致
宏观并行,微观串行
5、线程的消亡
线程结束需要回收线程空间,否则产生僵尸线程
二、线程的函数接口
进程和线程对应的函数接口

1、pthread_create

- 注意
- 第二个参数,可以将线程设置为分离属性(线程结束时候会自动回收空间)
- 第四个参数,可以实现对线程函数的传参
2、pthread_self

3、pthread_exit

4、pthread_join

- 注意:
- tid对应的线程只要不退出,pthread_join阻塞等待结束回收线程空间
- pthread_join具备同步功能
5、示例



三、练习
题目:创建4个线程任务
+ 线程1间隔1s打印"采集线程正在执行"
+ 线程2间隔2s打印"存储线程正在执行"
+ 线程3间隔5s打印"显示线程正在执行"
+ 线程4间隔10s打印"日志线程正在执行"
1、代码实现

2、makefile内容

3、结果

1065

被折叠的 条评论
为什么被折叠?



