《Java程序设计及应用》.ppt_第1页
《Java程序设计及应用》.ppt_第2页
《Java程序设计及应用》.ppt_第3页
《Java程序设计及应用》.ppt_第4页
《Java程序设计及应用》.ppt_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第11讲:多线程编程(1),内容提要,基本概念 创建线程 线程的生命周期 前台线程与后台线程 线程的分支与合并,基本概念,程序 进程 线程 多线程,创建线程,创建线程有两种方式: 通过继承Thread类 通过实现Runnable接口,创建线程继承Thread类,例程 通过上面的例子,可以总结出该种方式的多线程编程的要点: (1)首先创建线程类(通过继承Thread类并覆盖run()方法); (2)其次启动线程(通过创建自定义线程类对象并调用其继承的start()方法)。 初学者易犯的错误是:认为线程的启动执行只与run()方法有关,故第1518行代码可以与下面的代码等价。 30 ThreadTest t1 = new ThreadTest(); 31 t1.start(); /启动了一个线程 32 t1.start(); /又启动了一个新的线程,创建线程实现Runnable接口,例程 通过该例程,可以总结出该种方式的多线程编程的要点: (1)首先创建线程类(通过实现Runnable接口的run()方法); (2)其次启动线程(通过创建自定义类对象,再使用该对象创建Thread类对象并调用其start()方法)。,两种创建线程方式的比较,两种线程创建方式中都有一个run()方法,这让我们猜测Thread和Runnable之间应该有关系,查阅JDK API发现Thread类的声明为:public class Thread implements Runnable,这与使用第二种方式创建线程很类似,实际上不仅是类似,而且就是如此。 第一种方式采用继承,但Java只允许单继承,故这样的自定义线程类就不能再继承其他的类了,这是一个缺陷,所以建议采用第二种方式来创建线程,线程的生命周期,前台线程与后台线程,Java 有两种线程:后台线程(也称为守护线程、精灵线程)与前台线程(也称为用户线程)。6.2节中的例程都是前台线程,后台线程是一种在后台为前台线程提供通用性支持的线程,它并不是程序本身的一部分。这个模型也是来源于物理世界,例如演戏就有前台和后台,演员在前台上演戏,整个过程离不开后台的支持和服务。,Thread类中的setDaemon(boolean on)方法用于设置线程的前台/后台模式:当参数on的值为true时,当前线程就设置为后台模式,为false则为前台模式。,线程的分支与合并,通过分支,线程由一个变成多个,从而产生并行处理,使用6.2节介绍的创建线程的两种方式中的任意一种都能实现线程的分支。这是说在一个线程中创建另一个线程的情况,如果在main()方法中创建一个线程是不是就只有一个线程了?需要记住的是,Java进程都是多线程的,在启动一个Java应用时,就自动产生了一个线程(称为主线程或main线程),这个线程的运行方法就是我们再熟悉不过的main()方法,main()方法相当于普通线程中的run()方法。 而线程的合并恰恰相反,把一个线程合并到另一个线程中,由并行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论