轻松入门实战应用从项目开发角度为你搭建完整的知识体系 wangbaoming linux 线程-应用编程-专题讲座 written by 王保明 线程概念 1 线程概念 什么是线程 在一个程序里的一个执行路线就叫做线程(thread)
更准确的定义是:线程是“一个进程内部的控制序列” 一切进程至少都有一个执行线程 进程与线程 进程是资源竞争的基本单位 线程是程序执行的最小单位 线程共享进程数据,但也拥有自己的一部分数据 线程ID 程序计数器 寄存器组 栈 errno 一个进程内部的线程可以共享资源 代码段 数据段 打开文件和信号 轻松入门实战应用从项目开发角度为你搭建完整的知识体系 w angbaoming fork 和创建新线程的区别 当一个进程执行一个fork 调用的时候,会创建出进程的一个新拷贝,新进程将拥有它自己的变量和它自己的PID
这个新进程的运行时间是独立的,它在执行时几乎完全独立于创建它的进程 在进程里面创建一个新线程的时候,新的执行线程会拥有自己的堆栈(因此也就有自己的局部变量),但要与它的创建者共享全局变量、文件描述符、信号处理器和当前的工作目录状态 线程的优点 创建一个新线程的代价要比创建一个新进程小得多 与进程之间的切换相比,线程之间的切换需要操作系统做的工作要少很多 线程占用的资源要比进程少很多 能充分利用多处理器的可并行数量 在等待慢速 I/O 操作结束的同时,程序可执行其他的计算任务 计算密集型应用,为了能在多处理器系统上运行,将计算分解到多个线程中实现 轻松入门实战应用从项目开发角度为你搭建完整的知识体系 wangbaoming 2 线程模型 N :1 用户线程模型 “线程实现”建立在“进程控制”机制之上,由用户空间的程序库来管理
OS 内核完全不知道