pthread 课堂笔记整理
一、 多线程背景知识
1. 线程
线程(thread)技术早在 60 年代就被提出,但真正应用多线程到操
作系统中去,是在 80 年代中期。线程是计算机系统 CPU 调度和分派的
基本单元,被包含在进程中,作为进程的一个独立的单一顺序的控制流。
每个进程同时可以有多个线程,每个线程执行不一样的任务,但一个进
程至少有一个线程。
线程一般分为用户线程和内核线程(具体的分类会因操作系统不同
而有所差别,但一般包含这两类线程),用户线程不需要内核管理,依靠
用户线程库来管理;而内核线程则由内核直接管理和支持。
2. 线程与进程
进程是资源的拥有者,而线程则是指令的执行者。一个进程里的线程
能够共享代码段、数据段以及进程占用的全部系统资源。而每个线程拥
有自己各自的调用栈(call stack)、寄存器集合以及自身的本地存储,所
以线程对于进程来说是相当轻量级的,并且创建线程的系统开销非常小,
响应度高,因为大部分的工作在进程创建的时候已经完成,不需要再去
新建地址空间和申请资源。当进程死亡,进程内部的线程也会死亡。
由于进程内部的系统资源由所有线程共享,所以线程之间的通讯比
进程之间的通讯更加便捷,但由同样也由于资源共享的原因,所以要求
程序员在实现多线程操作资源的时候要使用显式的同步机制。
除此之外,多线程的并发能充分利用多处理器体系结构,而且多线程
评论0
最新资源