第9章 嵌入式Linux多线程开发
本章教学目的及要求
了解Linux的多线程概念
掌握Linux多线程相关的API
理解Linux多线程的通信机制及常用方法
第一页,编辑于星期六:二十三点 二十一分。
线程的概念
进程是系统中程序执行和资源分配的基本单位。每个进程都拥有自己的数据段、代码段和堆栈段,这就造成了进程在进行切换等操作时都需要有比较费时的上下文切换等动作。为了进一步减少处理机的空转时间支持多处理器和减少上下文切换开销,进程在演化中出现了另一个概念——线程
第二页,编辑于星期六:二十三点 二十一分。
线程的概念
进程是系统中程序执行和资源分配的基本单位。每个进程都拥有自己的数据段、代码段和堆栈段,这就造成了进程在进行切换等操作时都需要有比较费时的上下文切换等动作。为了进一步减少处理机的空转时间支持多处理器和减少上下文切换开销,进程在演化中出现了另一个概念——线程
第三页,编辑于星期六:二十三点 二十一分。
线程的概念
进程是系统中程序执行和资源分配的基本单位。每个进程都拥有自己的数据段、代码段和堆栈段,这就造成了进程在进行切换等操作时都需要有比较费时的上下文切换等动作。为了进一步减少处理机的空转时间支持多处理器和减少上下文切换开销,进程在演化中出现了另一个概念——线程
线程是一个进程内的基本调度单位,也可以称为轻量级进程。线程是在共享内存空间中并发的多道执行路径,它们共享一个进程的资源,如文件描述和信号处理。因此,大大减少了上下文切换的开销。
第四页,编辑于星期六:二十三点 二十一分。
线程的概念
进程是系统中程序执行和资源分配的基本单位。每个进程都拥有自己的数据段、代码段和堆栈段,这就造成了进程在进行切换等操作时都需要有比较费时的上下文切换等动作。为了进一步减少处理机的空转时间支持多处理器和减少上下文切换开销,进程在演化中出现了另一个概念——线程
线程是一个进程内的基本调度单位,也可以称为轻量级进程。线程是在共享内存空间中并发的多道执行路径,它们共享一个进程的资源,如文件描述和信号处理。因此,大大减少了上下文切换的开销。
第五页,编辑于星期六:二十三点 二十一分。
同进程一样,线程也将相关的变量值放在线程控制表内。一个进程可以有多个线程,也就是有多个线程控制表及堆栈寄存器,但却共享一个用户地址空间。要注意的是,由于线程共享了进程的资源和地
址空间,因此,任何线程对系统资源的操作都会给其他线程带来影响,因此,多线程中的同步就是非常重要的问题了
第六页,编辑于星期六:二十三点 二十一分。
Linux多线程相关API
Linux有多线程开发的 Pthread 库支持。
涉及多线程开发的最基本概念:线程、互斥锁、条件。
①线程操作又分线程的创建、退出、等待。
②互斥锁则包括 4 种操作:创建、销毁、加锁和解锁。
③条件操作有 5 种操作:创建、销毁、触发、广播和等待。
其他的一些线程扩展概念,如信号灯等,都可以通过上面的三个基本元素的基本操作封装出来。
第七页,编辑于星期六:二十三点 二十一分。
线程的创建
第八页,编辑于星期六:二十三点 二十一分。
第九页,编辑于星期六:二十三点 二十一分。
第十页,编辑于星期六:二十三点 二十一分。
嵌入式Linux线程 来自淘豆网www.taodocs.com转载请标明出处.