《(44)--6-4-4 嵌入式Linux下的多线程编程.ppt》由会员分享,可在线阅读,更多相关《(44)--6-4-4 嵌入式Linux下的多线程编程.ppt(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式Linux下应用程序开发Development of Application on Embedded LinuxDevelopment of Application on Embedded Linux主要内容:6-4nLinux下的接口操作下的接口操作nLinux下的串口应用开发下的串口应用开发nLinux下的网络通讯编程下的网络通讯编程nLinux多线程编程多线程编程Linux下的多线程编程 Multi Thread Multi Thread Programming under LinuxProgramming under Linux6-4-4(1)Linux下下线程线程的概念的概念n
2、进程是系统中程序执行和资源分配的基本单位。每个进程有自己的数据段、代码段和堆栈段。n线程通常叫做轻型的进程。线程是在共享内存空间中并发执行的多道执行路径,他们共享一个进程的资源。n因为线程和进程比起来很小,所以相对来说,线程花费更少的CPU资源。用户地址空间线程一线程二线程三进 程图1 进程与线程的关系Linux下的多线程编程 Multi Thread Multi Thread Programming under LinuxProgramming under Linux6-4-4n线程按照其调度者可分为用户级线程和内核级线程两种。n(1)用户级线程n主要解决的是上下文切换的问题,其调度算法和调
3、度过程全部由用户决定。n(2)内核级线程n由内核调度机制实现。n现在大多数操作系统都采用用户级线程和内核级线程并存的方法。用户级线程可与内核级线程实现“一对一”,“一对多”的对应关系。Linux下的多线程编程 Multi Thread Multi Thread Programming under LinuxProgramming under Linux6-4-4(2)Linux下的线程实现 在linux中,一般采用Pthread线程库实现线程的访问与控制,由POSIX提出,具有良好的可移植性,属于用户级线程。n线程创建与退出n创建线程使用pthread_create函数。在线程创建以后,就开始
4、运行相关的线程函数。线程退出时使用函数pthread_exit,是线程的主动行为。注意进程退出时使用exit函数,线程中用pthread_exit替代exit。n由于一个进程中的多个线程共享数据段,因此通常在线程退出后,退出线程所占用的资源并不会随线程结束而释放。所有需要pthread_join函数来等待线程结束,类似于wait系统调用。Linux下的多线程编程 Multi Thread Multi Thread Programming under LinuxProgramming under Linux6-4-4多线程编程示例注意编译时,要将pthread库连接进来gcc-o thread thread.c-lpthreadn小结小结nLinux下的多线程编程可在用户级或系统及实现多线程;下的多线程编程可在用户级或系统及实现多线程;n通常使用通常使用Pthread线程库实现用户级的多线程;线程库实现用户级的多线程;n多线程编程要考虑线程之间的同步与互斥。多线程编程要考虑线程之间的同步与互斥。Linux下的多线程编程 Multi Thread Multi Thread Programming under LinuxProgramming under Linux6-4-4