05_Linux多线程_系统编程.docVIP

  • 3
  • 0
  • 约3.08万字
  • 约 26页
  • 2016-05-06 发布于贵州
  • 举报
05_Linux多线程_系统编程

LINUX多线程 Linux多线程概述 概述 进程是系统中程序执行和资源分配的基本单位。每个进程有自己的数据段、代码段和堆栈段。这就造成进程在进行切换等操作时都需要有比较负责的上下文切换等动作。为了进一步减少处理器的空转时间,支持多处理器和减少上下文切换开销,也就出现了线程。 线程通常叫做轻量级进程。线程是在共享内存空间中并发执行的多道执行路径,是一个更加接近于执行体的概念,拥有独立的执行序列,是进程的基本调度单元,每个进程至少都有一个main线程。它与同进程中的其他线程共享进程空间{堆 代码 数据 文件描述符 信号等},只拥有自己的栈空间,大大减少了上下文切换的开销。 线程和进程在使用上各有优缺点:线程执行开销小,占用的CPU资源少,线程之间的切换快,但不利于资源的管理和保护;而进程正相反。从可移植性来讲,多进程的可移植性要好些。 同进程一样,线程也将相关的变量值放在线程控制表内。一个进程可以有多个线程,也就是有多个线程控制表及堆栈寄存器,但却共享一个用户地址空间。要注意的是,由于线程共享了进程的资源和地址空间,因此,任何线程对系统资源的操作都会给其他线程带来影响。 线程分类 按调度者分为用户级线程和核心级线程 ·用户级线程:主要解决上下文切换问题,调度算法和调度过程全部由用户决定,在运行时不需要特定的内核支持。缺点是无法发挥多处理器的优势 ·核心级线程:允许不同进程中的线程按照

文档评论(0)

1亿VIP精品文档

相关文档