1. 线程定义
概念
- 对等线程
- 对等线程池
多线程和多进程编程模型某些方面是相同的,譬如:
一个可执行程序生命周期开始的时候,我们定义这是一个进程。该进程只有一个线程,一般我们称为主线程。
通过线程创建函数可以创建新的线程,叫做对等线程(主线程和新的线程是对等关系),这两个线程因为在同一个进程环境中的对等关系构成了一个对等线程池
2. 线程内存模型
重要概念 线程上下文
一组并发线程运行在一个进程的上下文中!每个线程有独立的上下文,它包括:线程ID,线程栈,栈指针,程序计数器,条件码和通用目的寄存器。所有线程共享剩余进程上下文,包括整个虚拟地址空间,包括:打开的文件,可执行文件,共享库,堆,数据区域等…
从另一个方面讲:
线程之间共享整个虚拟地址空间,一个线程无法访问另一个线程的寄存器,但是却能通过指针访问另一个线程的栈
3. 线程 进程对比
线程上下文比进程上下文小的多,因此线程切换比进程切换也快的多