1. 线程
1.1 定义
线程是一个轻量级的进程
是一个任务被创建、调度、消亡的过程
1.2 线程与进程的关联
线程是CPU任务调度的最小单元
进程是操作系统资源分配的最小单元
线程位于进程空间内部,多线程只需在同一进程空间切换调度任务
2 线程的创建
2.1 进程的创建:文本段、数据段、系统数据段、内核
2.2 线程的创建:栈区独立,其余区域与进程共享
2.3 进程中的所有线程
独享:栈区——局部变量、
共享:文本段、数据段、堆区——全局变量/静态变量/字符串常量/malloc空间/代码
3. 线程的调度
宏观并行、微观串行
4. 线程消亡
与进程消亡机制相同
5. 进程和线程的区别
1.进程是操作系统资源分配的最小单元
2.线程是CPU任务调度的最小单元
6. 多进程和多线程的优缺点
1.执行效率:
多线程 > 多进程
1.多线程只需在同一进程空间内部切换调度任务
2.多进程需要在不同进程空间来回切换调度任务
2.安全
多进程 > 多线程
1.多进程各自独立,一个进程异常结束,不会影响其余进程
2.多线程都在同一进程空间内部,一个线程异常结束,导致进程异常结束,
进程中其余所有线程均会结束
3.通信能力:
多线程 > 多进程
1.多线程可以利用共享空间实现任务通信
2.多进程没有共享空间,所以通信方式比较复杂
4.通信安全性:
多进程 > 多线程
1.多进程没有共享空间,依赖第三方对象完成通信,中间不涉及资源竞争问题
2.多线程有共享空间,多个任务通信会产生资源竞争,需要加锁
7. 线程相关函数接口
对标进程函数接口
1.fork pthread_create
2.exit pthread_exit
3.wait pthread_join
4.getpid pthread_self
7. 1. pthread_create