pthread_Intro
by
线程初步
什么是线程
- 轻量级的进程(LWP:light weight process),在linux 环境下线程的本质是进程
- 进程:拥有独立的地址空间,拥有 PCB,相当于独居
- 线程:有 PCB,但没有独立的地址空间,多个线程共享进程空间,相当于合租
在linux操作系统下:
- 线程:最小的执行单位
- 进程:最小的资源分配单位,可看成是只有一个线程的进程
线程的特点
- 线程是轻量级进程(light-weight process),也有PCB,创建线程使用的底层函数和进程一样,都是clone
- 从内核看进程和线程是一样的,都有各自不同的PCB
- 进程可以蜕变为线程
- 线程是最小的执行单位
线程共享资源
- 文件描述符表
- 每种信号的处理方式
- 当前工作目录
- 用户 ID 和组 ID
- 内存地址空间
线程非共享资源
- 线程 ID
- 处理器现场和栈指针(内核栈)
- 独立的栈空间(用户栈空间)
- errno变量
- 信号屏蔽字
- 调度优先级
线程优缺点
优点:
- 提高程序并发性
- 开销小
- 数据通信、共享数据方便
缺点:
- 库函数,不稳定
- gdb调试,编写困难
- 对信号支持不好