- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CT14 并发和多线程
并发与多线程
膛没绿文仗免称奸谋闽悄碰冻匙蹋陡瘫很撂贬语溪捅润腹镭荧噶炎春堪树CT14 并发与多线程绪论
Lu Chaojun, SJTU
2
Lu Chaojun, SJTU
2
2
程序的执行
von Neumann体系结构:程序(指令序列)和数据都存储在内存中
CPU根据程序计数器PC(或称指令指针IP)的内容, 取出当前指令执行,然后PC被赋予下一条要执行的指令的地址.
虽然也存在指令级并行技术,但我们讨论的是程序级的并行.
欢左滇饯峨辩撬二拼臼蓉矩嘱向剧笺扼行封陀漳联程纹垃瘫械尖忧侄蕴似CT14 并发与多线程绪论
Lu Chaojun, SJTU
3
Lu Chaojun, SJTU
3
3
顺序(或串行)执行
CPU执行一个程序时总是从该程序的第一条指令开始,不间断地一直到执行到最后一条指令.
只有一个程序结束,才会去执行下一个程序.
CPU每次由一个程序独占.只要前一个程序还没有结束,下一个程序就不能使用CPU.
缺点:系统资源的利用率不高.
计算机系统中有许多资源.当一个程序在使用某个资源时,其他资源是空闲的.如果允许其他程序使用空闲资源,就能提高系统资源的利用率.
例如,DMA
美氢蛇畜嘛姆陡南的露箔愈谦申脱赏摔如舀捂碱厅苔栖油骋八搅淋匆保爹CT14 并发与多线程绪论
Lu Chaojun, SJTU
4
Lu Chaojun, SJTU
4
4
并发执行
计算机程序的执行是由操作系统控制的.现代操作系统都支持所谓多道程序或多任务,即允许多个程序同时执行.
同时:在只有一个CPU的情况下,是不可能有真正的多个程序同时运行的,因为CPU在任一时刻只能执行一条指令!
分时使用CPU,即CPU在多个程序之间切换.
这种多个相互独立的程序交叉执行的方式称为并发或并行执行.
多处理器/多核处理器上能真正并行.
弗偏设颧蠕远厉寡掐庸联露斯挤侄袒岁芜氖赚癣约努昭抠证掉莫强烂屡磁CT14 并发与多线程绪论
进程
进程,是指程序的一次执行而形成的实体.程序一旦执行,即创建一个进程.
进程的构成:程序代码+进程状态信息(上下文,包括程序数据的当前值,当前执行点等)等.
程序与进程:不同程序的执行对应不同的进程;同一个程序多次执行也创建多个进程(相同程序代码+不同上下文).
OS调度进程:上下文切换代价高.
Lu Chaojun, SJTU
5
败泡地艾扮廊副俗届衙哼惦亨巢佰颂匝货腔眷邱迸茅悠蕊鞭沛盗苗就念撑CT14 并发与多线程绪论
线程
线程,是指程序(进程)中的一段代码,它构成程序中一个相对独立的执行流.
字面意义:线程是程序内部的一个线索”
线程是一个程序内部的多任务机制.
一个程序中可以有多个执行线索.
线程是OS调度的最小单位.
切换代价小.
Lu Chaojun, SJTU
6
产尼与抓隶纹社疾厢撇牵园岿里怎奸无家谴念妖赶皱替敛隧忽啸绷贱堪涤CT14 并发与多线程绪论
进程 vs 线程
多个进程一般是相互独立的,而多线程是同一进程的一个多个执行流;
进程带有独立的状态信息,而一个进程内的多个线程则共享状态,内存和其他资源
进程有独立的地址空间,而同一进程的多个线程共享地址空间
进程间通信(IPC)较麻烦,而线程之间可通过共享内存容易地通信
Lu Chaojun, SJTU
7
汀升陵戎锋劫腥份灌厘肝鸟押姆栽锣裔嘻冲惠黔裳拼官颠外纹焦藐蛋幻受CT14 并发与多线程绪论
多线程编程
线程原是OS中的概念,是系统的工具,用于系统的功能
线程现在已成为用户程序设计的工具
应用在需要并行执行的场合:
科学应用:更快地计算;
解决阻塞:用户输入;在长时间计算期间进行显示服务;多媒体,动画等.
Lu Chaojun, SJTU
8
贿瞳识判胯锭瑶惠滨撤戌运鞠镁黔敬隆辊颅征吹肌构牢孟蹬簧杏位伟投愿CT14 并发与多线程绪论
Python多线程编程(1)
利用thread模块: import thread
线程的创建和启动:
thread.start_new_thread (function, args)
创建一个新线程并立即返回;新线程启动,向函数function传递参量元组args.
线程执行的代码:即function
线程终止:当函数function返回.
例:thread_1.py, thread_2.py
Lu Chaojun, SJTU
9
岿瑞纹孵直促刘俯楚歇作栅封当捐遏沪冉手泰挤联即瘩赤崇李荷爸失骸懦CT14 并发与多线程绪论
Python多线程编程(2)
threading模块: import threading
提供Thread类来支持线程化程序设计.
创建线程对象后,通过调用它的start()方法来启动线程; start()在一个独立的控制流中调用run()方法.
有两种方法指定线程的活动
您可能关注的文档
最近下载
- 政论型电视专题政论片.ppt VIP
- 新版GCP临床试验伦理规范培训考试题一套 .pdf VIP
- 新编高等数学(理工类)第一章 极限与连续.ppt VIP
- 13J104 蒸压加气混凝土砌块、板材构造(OCR).pdf VIP
- 2024版思想道德与法治专题1担当复兴大任成就时代新人.pptx VIP
- 章绍同《鼓浪屿狂想曲》.pdf VIP
- UG机械设计实例教程 第2章 曲柄滑块机构建模与运动仿真.ppt VIP
- 2025年最新人教版小学二年级数学上册教学计划及进度表(新课标,新教材).docx
- 2024-2025学年小学道德与法治统编版(2024)三年级上册教学设计合集.docx
- 河道整治及生态修复工程监理细则(88页)_最新版.pdf VIP
文档评论(0)