第11章多线程ppt课件.ppt

第11章多线程ppt课件.ppt

ID:59494865

大小:346.50 KB

页数:72页

时间:2020-09-13

第11章多线程ppt课件.ppt_第1页
第11章多线程ppt课件.ppt_第2页
第11章多线程ppt课件.ppt_第3页
第11章多线程ppt课件.ppt_第4页
第11章多线程ppt课件.ppt_第5页
资源描述:

《第11章多线程ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十一章多线程1第十一章多线程11.1多线程概念11.2多线程的创建11.3线程的控制11.4互斥与同步11.5线程组11.1多线程基本概念以前所编写的程序,每个程序都有一个入口、一个出口以及一个顺序执行的序列,在程序执行过程中的任何指定时刻,都只有一个单独的执行点。事实上,在单个程序内部是可以在同一时刻进行多种运算的,这就是所谓的多线程(这与多任务的概念有相似之处)。一个单独的线程和顺序程序相似,也有一个入口、一个出口以及一个顺序执行的序列,从概念上说,一个线程是一个程序内部的一个顺序控制流。线程并不是程序,它自己本身并不能运行,必须在程序中运行。在一个程序中可以实现多个线程

2、,这些线程同时运行,完成不同的功能。3程序、进程与线程“程序”(Program)是保存在存储设备上的文件;“进程”(Process)是正在计算机中执行的程序;"线程"(Thread)是进程中某个单一顺序的控制流或者一条执行路径。多线程基本概念5多线程基本概念从逻辑的观点来看,多线程意味着一个程序的多行语句同时执行,但是多线程并不等于多次启动一个程序,操作系统也不会把每个线程当作独立的进程来对待:两者的粒度不同,是两个不同层次上的概念。进程是由操作系统来管理的,而线程则是在一个程序(进程)内,不同进程的代码、内部数据和状态都是完全独立的,而一个程序内的多线程是共享同一块内存空间和

3、同一组系统资源,有可能互相影响。线程本身的数据通常只有寄存器数据,以及一个程序执行时使用的堆栈,所以线程的切换比进程切换的负担要小。6多线程基本概念文件输入输出装置各种系统资源数据区段程序区段只有一个地方在执行文件输入输出装置各种系统资源数据区段程序区段同时有数个地方在执行传统的进程多线程的任务7多线程的优势用户可以获得更好交互。两个线程的切换时间少。由于同一个进程内的线程共享内存和文件,所以线程之间互相通信必须调用内核。线程能独立执行,能充分利用和发挥处理机与外围设备并行工作的能力。可以利用多处理器。可以简化对象模型。8多线程示例多线程示例11.2线程的创建11.2.1通过扩

4、展Thread类创建线程11.2.2通过实现Runnable接口创建线程11在JAVA语言中实现多线程编程方法有两种途径,分别是:继承Thread类和实现Runnable接口。线程的行为由线程体决定,线程体由run()方法定义,运行系统通过调用该方法实现线程的具体行为。创建线程的方式Java的线程是通过Java的软件包Java.lang中定义的类Thread来实现的。当生成一个Thread类的对象之后,就产生了一个线程,通过该对象实例,可以启动线程、终止线程、或者暂时挂起它等。Thread类本身只是线程的虚拟CPU,线程所执行的代码(或者说线程所要完成的功能)是通过方法run(

5、)(包含在一个特定的对象中)来完成的,方法run()称为线程体。实现线程体的特定对象是在初始化线程时传递给线程的。在一个线程被建立并初始化以后,Java的运行时系统就自动调用run()方法,正是通过run()方法才使得建立线程的目的得以实现。通常,run()方法是一个循环,例如一个播放动画的线程要循环显示一系列图片。有时,run()方法会执行一个时间较长的操作,例如下载并播放一个JPEG格式的电影。1311.2.1通过扩展Thread类创建线程定义一个线程类,它继承类Thread并重写其中的方法run()。这时在初始化这个类的实例时,目标对象target可以为null,表示这个

6、实例本身具有线程体。由于Java只支持单继承,用这种方法定义的类不能再继承其他类。14Thread类提供的构造方法Thread类提供了7种重载的构造方法,分别是:PublicThread()PublicThread(Runnabletarget)PublicThread(RUnnabletarget,Stringname)PublicThread(Stringname)PublicThread(ThreadGroupgroup,Runnabletarget)PublicThread(ThreadGroupgroup,Stringname)PublicThread(ThreadG

7、roupgroup,Runnabletaget,Stringname)创建线程的方式先来看看线程对象的初始化,类Thread的构造方法如下:publicThread(ThreadGroupgroup,Runnabletarget,Stringname)group指明了线程所属的线程组;target是线程体run()方法所在的对象;name是线程的名称。target必须实现接口Runnable。在接口Runnable中只定义了一个方法voidrun()作为线程体。任何实现接口Runnable的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。