第08的章 多线程.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第08的章 多线程

Java面向对象 程序设计基础教程 河南大学计算机与信息工程学院 第8章 多线程 8.1 创建线程 8.2 线程间的同步机制 第8章 多线程 进程: 操作系统中资源分配的基本单位. 线程: 操作系统中处理器调度和分派的基本单位, 同一个进程中的所有线程共享进程获得的主存 空间和资源,但不拥有资源. 第8章 多线程 8.1 创建线程 8.1.1 继承Thread类创建线程 8.1.2 实现Runnable接口创建线程 8.1.3 线程状态和线程控制 8.1 创建线程 Java提供两种方式实现多线程程序设计: 直接继承Thread类和实现Runnable接口 run()方法:java.lang.Runnable接口中的方法, 在该方法中描述线程的所有活动和要执行的操作。 注:一个线程对象必须实现run()方法。 线程体:已实现的run()方法称为该线程对象的线程体. 8.1.1 继承Thread类创建线程 1.Thread类 public class Thread extends Object implements Runnable Thread类中封装了用于创建、管理和控制线程对象的方法。 构造方法 public Thread() public Thread(Runnable?target) //target指定线程的目标对象 public Thread(String?name) //name指定线程名 public Thread(ThreadGroup?group, Runnable?target, String?name) //分配新的 Thread 对象,以便将 target 作为其运行对象,将指定的 name 作为其名称,并作为 group 所引用的线程组的一员。 8.1.1 继承Thread类创建线程 2.继承Thread类创建线程 创建线程的方法 自定义一个类,让其继承自Thread类。 覆盖Thread类的run()方法。 8.1.2 实现Runnable接口创建线程 1.Runnable接口 public interface Runnable Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。 void run() 8.1.2 实现Runnable接口创建线程 2.创建启动线程 创建线程的方法 自定义一个类,声明其实现Runnable接口并实现run()方法。 将实现了Runnable接口的类作为Thread类的目标对象。 8.1.2 实现Runnable接口创建线程 3.两种创建线程方式的比较 8.1.3 线程状态和线程控制 8.1.3 线程状态和线程控制 改变线程状态的方法: start()、sleep()、join()、yield()等. 测试线程状态的方法: isInterrupted()、isAlive()等. 协调线程对象的方法: java.lang.Object中提供了wait()、notify()、notifyAll()方法。—表8-3 8.1.3 线程状态和线程控制 (1) start()方法: 一个线程对象只能调用一次start()方法,即 只能启动一次。 如果启动一个线程后,又调用了start()方法,则会出现IllegalThreadStateException异常。 8.1.3 线程状态和线程控制 (3)interrupt()方法: 只是为线程设置一个中断标记,并没有中断 线程运行。 设置中断标记后,isAlive方法仍返回true。 用interrupt()方法设置的标记可以用isInterrupted()方法检测到。 在设置了中断标记的情况下,当线程遇到sleep()之类的方法 而被阻塞时,就会由sleep()之类的方法抛出InterruptedException异常,人们就可以捕获这个异常来处理中断操作。 当抛出InterruptedException时,中断标记将同时被清除. 8.1.3 线程状态和线程控制 (4) join()方法: 如果在t1线程中使用t2.join()方法,则t1在 执行到join()语句时就会暂停执行,直到t2结束 后才会继续执行。 public final void join() throws InterruptedException public final void join(long?millis) throws InterruptedException //指定暂停时间长度millis,当t1等待的

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档