- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第13章多线程与多进程编程
多线程与多进程编程??常见的多线程技术应用场景:在执行一段代码的同时还可以接收和响应用户的键盘或鼠标事件以提高用户体验;Windows操作系统的WindowsIndexingServices创建了一个低优先级的线程,该线程定期被唤醒并对磁盘上的特定区域的文件内容进行索引以提高用户搜索速度;打开Photoshop、3DsMax这样的大型软件时需要加载很多模块和动态链接库,软件启动时间会比较长,可以使用一个线程来显示一个小动画来表示当前软件正在启动,当后台线程加载完所有的模块和库之后,结束该动画的播放并打开软件主界面;字处理软件可以使用一个优先级高的线程来接收用户键盘输入,而使用一些低优先级线程来进行拼写检查、语法检查、分页以及字数统计之类的功能并将结果显示在状态栏上,对于提高用户体验有重要帮助。???
多线程与多进程编程?在多核、多处理器平台上,在任意时刻每个核可以运行一个线程,多个线程同时运行并相互协作,从而达到高速处理任务的目的。?即使是高端服务器或工作站甚至集群系统,处理器和核的数量总是有限的,如果线程的数量多于核的数量,就必然需要进行调度。?在调度时,处理器为每个线程分配一个很短的时间片,所有线程根据具体的调度算法轮流获得该时间片。当时间片用完以后,即使该线程还没有执行完也要退出处理器并等待下次调度,同时由操作系统按照优先级再选择一个线程进入CPU运行。
多线程与多进程编程?对于单核单CPU而言,使用多线程并不能提高任务处理速度,但有些场合必须使用多线程技术,例如GUI界面的用户体验。?并不是使用的线程数量越多越好,如果线程太多的话,线程调度带来的开销可能会比线程实际执行的开销还大,这样使用多线程就失去本来的意义了。
多线程与多进程编程?系统运行过程中存在大量的线程。
多线程与多进程编程?大多数线程要经过很多次调度才能完成预定的任务。
多线程与多进程编程?Python多线程编程技术存在GIL问题,而使用多进程则有效地避免了这个问题,进一步提高了系统吞吐量。
13.1threading模块方法功能说明active_count()、activeCount()current_thread()、currentThread()threading.get_ident()返回当前处于alive状态的Thread对象数量返回当前Thread对象返回当前线程的线程标识符。线程标识符是一个非负整数,并没特殊含义,只是用来标识线程,该整数可能会被循环利用。Python3.3及以后版本支持该方法返回当前处于alive状态的所有Thread对象列表返回主线程对象,即启动Python解释器的线程对象。Python3.4及以后版本支持该方法threading.enumerate()threading.main_thread()threading.stack_size([size返回创建线程时使用的栈的大小,如果指定size参数,])则用来指定后续创建的线程使用的栈大小,size必须是0(表示使用系统默认值)或大于32K的正整数线程类,用于创建和管理线程事件类,用于线程同步条件类,用于线程同步锁类,用于线程同步信号量类,用于线程同步用于在指定时间之后调用一个函数的情况ThreadEventConditionLock、RLockSemaphoreTimer
13.1threading模块importthreadingthreading.stack_size()#查看当前线程栈的大小0threading.stack_size(64*1024)#设置当前线程栈的大小0threading.stack_size()65536threading.active_count()#查看活动线程数量2
13.1threading模块threading.current_thread()#返回当前线程对象_MainThread(MainThread,started4852)threading.enumerate()#枚举所有线程[Thread(SockThread,starteddaemon9620),_MainThread(MainThread,started4852)]defdemo(v):print(v)t=threading.Timer(3,demo,args=(5,))#创建线程t.start()#启动线程,3秒之后调用demo函数t.cancel()
您可能关注的文档
- PC现场工作流程.ppt
- PICC维护流程图专业知识课件.pptx
- PICC置管技术的应用.pptx
- PLC程序读写步骤.ppt
- PLC顺序控制指令及应用.pptx
- pleasesendmeacard新概念市公开课一等奖省赛课微课金奖课件.pptx
- PMC-总结及规划报告.pptx
- PMP项目管理培训课件.ppt
- PowerPoint2003动画效果应用.ppt
- PowerPoint动态效果大全.ppt
- 2025年浙江大学医学院附属第二医院招聘心电图室工作人员若干人笔试备考试题及答案解析.docx
- 2025山东威海职业学院招聘高层次人才40人笔试备考试题及答案解析.docx
- 2025云南省红河县人民法院招聘聘用制人员(4人)笔试备考试题及答案解析.docx
- 2025浙江宁波象新公交集团有限公司招聘工作人员5人笔试备考试题及答案解析.docx
- 2025深能北方能源控股有限公司校园招聘笔试备考试题及答案解析.docx
- 2025年浙江大学医学院附属第二医院招聘医师助理人员若干人笔试备考试题及答案解析.docx
- 美德少年简要事迹.doc
- 2025年大连金普新区卫生系统招聘事业编制工作人员164人笔试备考试题及答案解析.docx
- 2025云南省红河州个旧市医共体大屯分院编外工作人员招聘(1人)笔试备考试题及答案解析.docx
- 2025通辽市科尔沁区第一人民医院年招聘48名专业技术人员笔试备考试题及答案解析.docx
文档评论(0)