书签 分享 收藏 举报 版权申诉 / 26
上传文档赚钱

类型Linux编程与应用课件:10第10章 Linux多线程编程.ppt

  • 上传人(卖家):罗嗣辉
  • 文档编号:2046021
  • 上传时间:2022-01-21
  • 格式:PPT
  • 页数:26
  • 大小:955KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Linux编程与应用课件:10第10章 Linux多线程编程.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Linux 编程 应用 课件 10 多线程
    资源描述:

    1、第10章Linux多线程编程 线程基本概念与线程操作线程基本概念与线程操作 线程属性控制线程属性控制 线程调度策略线程调度策略 2022-1-202线程与进程的对比 2022-1-203线程资源 线程自己基本上不拥有系统资源,只拥有少量在运行中必不可少的资源(如程序计数器、一组寄存器、栈、线程信号掩码、局部线程变量和线程私有数据),但是它可与同属一个进程的其他线程共享进程所拥有的全部资源(同一地址空间、通用的信号处理机制、数据与I/O)。进程在使用时占用了大量的内存空间,特别是进行进程间通信时一定要借助操作系统提供的通信机制,这使得进程有自身的弱点,而线程占用资源少,使用灵活,很多应用程序中都

    2、大量使用线程,而较少的使用多进程,但是,线程不能脱离进程而存在,另外,线程的层次关系,执行顺序并不明显,对于初学者大量使用线程会增加程序的复杂度。2022-1-204进程/线程应用对比 应用功能线程进程创建pthread_createfork,vfork退出pthread_exitexit等待pthread_joinwait、waitpid取消/终止pthread_cancelabort读取IDpthread_self()getpid()调度策略SCHED_OTHER、SCHED_FIFO、SCHED_RRSCHED_OTHER、SCHED_FIFO、SCHED_RR通信机制信号量、信号、互斥

    3、锁、条件变量、读写锁无名管道、有名管道、信号、消息队列、信号量、共享内存2022-1-205创建线程 2022-1-206线程退出与等待 新创建的线程从执行用户定义的函数处开始执行,直到出现以下情况时退出:调用pthread_exit函数退出。调用pthread_cancel函数取消该线程。创建线程的进程退出或者整个函数结束。其中的一个线程执行了exec类函数执行新的进程。2022-1-207等待线程 2022-1-208取消线程 取消线程是指取消一个正在执行线程的操作,当然,一个线程能够被取消并终止执行需要满足以下条件: 该线程是否可以被其它取消,这是可以设置的,在Linux系统下,默认是可

    4、以被取消的,可用宏分配是PTHREAD_CANCEL_DISABLE和PTHREAD_CANCEL_ENABLE; 该线程处于可取消点才能取消。也就是说,该线程被设置为可以取消状态,另一个线程发起取消操作,该线程并不是一定马上终止,只能在可取消点才中止执行。可以设置为立即取消和在取消点取消。可用宏为PTHREAD_CANCEL_DEFERRED和PTHREAD_CANCEL_ASYNCHRONOUS。2022-1-209pthread_cancel() 2022-1-2010设置可取消状态 可设置的state的合法值: 如果目标线程的可取消性状态为PTHREAD_CANCEL_DISABLE,

    5、则针对目标线程的取消请求将处于未决状态,启用取消后才执行取消请求。 如果目标线程的可取消性状态为PTHREAD_CANCEL_ENABLE,则针对目标线程的取消请求将被传递。默认情况下,在创建某个线程时,其可取消性状态设置为PTHREAD_CANCEL_ENABLE。2022-1-2011设置取消类型 pthread_setcanceltype()函数用来设置取消类型,即允许取消的线程在接收到取消操作后是立即中止还是在取消点中止,该函数声明如下:extern int pthread_setcanceltype (int _type, int *_oldtype)此函数有两个参数,type为调用

    6、线程的可取消性类型所要设置的值。oldtype为存储调用线程原来的可取消性类型的地址。type的合法值包括: 如果目标线程的可取消性状态为PTHREAD_CANCEL_ASYNCHRONOUS,则可随时执行新的或未决的取消请求。 如果目标线程的可取消性状态为PTHREAD_CANCEL_DEFERRED,则在目标线程到达一个取消点之前,取消请求将一直处于未决状态。在创建某个线程时,其可取消性类型设置为PTHREAD_CANCEL_DEFERRED。第10章Linux多线程编程 线程基本概念与线程操作线程基本概念与线程操作 线程属性控制线程属性控制 线程调度策略线程调度策略 2022-1-201

    7、3线程资源线程只拥有少量在运行中必不可少的资源,主要包括:程序计数器:标识当前线程执行的位置;一组寄存器:当前线程执行的上下文内容;栈:用于实现函数调用、局部变量。因此,局部变量是私有的;线程信号掩码:因此可以设置每线程阻塞的信号,见本书下一章内容;局部线程变量:在栈中申请的数据;线程私有数据。见前一小节介绍。2022-1-2014线程属性结构体 2022-1-2015线程ID 2022-1-2016初始化线程属性对象 extern int pthread_attr_init (pthread_attr_t *_attr) 属性缺省值描述scopePTHREAD_SCOPE_PROCESS新线

    8、程与进程中的其他线程发生竞争detachstatePTHREAD_CREATE_JOINABLE线程可以被其它线程等待stackaddrNULL新线程具有系统分配的栈地址stacksize0新线程具有系统定义的栈大小priority0新线程的优先级为0inheritschedPTHREAD_EXPLICIT_SCHED新线程不继承父线程调度优先级schedpolicySCHED_OTHER新线程使用优先级调用策略2022-1-2017获取/设置线程detachstate属性 2022-1-2018获取/设置线程栈相关属性 2022-1-2019获取/设置stack地址属性 2022-1-202

    9、0获取/设置栈保护区属性第10章Linux多线程编程 线程基本概念与线程操作线程基本概念与线程操作 线程属性控制线程属性控制 线程调度策略线程调度策略 2022-1-2022调度策略 在操作系统中,调度策略主要有: FIFO先入先出原则:首先请求服务的对象首先得到CPU的处理。 最短作业优先原则:需要最小系统时间的服务首先得到处理。 最高优先级优先原则:优先级最高的服务首先得到处理。 时间轮片原则:每个任务分配一个系统时间片,轮流执行。POSIX为线程指定了三个调度策略: SCHED_OTHER:系统默认策略。如时间轮片策略或基于优先级的调度策略。 SCHED_FIFO:先进先出原则。具有最高优先级的、等待时间最长的线程将成为下一个要执行的线程。 SCHED_RR:轮转调度。类似于FIFO,但加上了时间轮片策略。2022-1-2023获取/设置线程属性调度属性 2022-1-2024获取/设置调度策略属性 2022-1-2025获取/设置调度策略参数属性 2022-1-2026获取/设置指定线程调度属性

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Linux编程与应用课件:10第10章 Linux多线程编程.ppt
    链接地址:https://www.163wenku.com/p-2046021.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库