Java程序设计课件 第十一章 多线程程序设计Java程序设计课件 第十一章 多线程程序设计.ppt

Java程序设计课件 第十一章 多线程程序设计Java程序设计课件 第十一章 多线程程序设计.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java语言程序设计 第十一章 多线程编程 讲授人:傅晓阳 教授 本章课程纲要 本课程纲要 多任务处理 进程是指一种调到内存中执行的运行程序,有自己的地址空间;线程是进程内部单一的一个顺序控制流 基于进程的特点是允许计算机同时运行两个或更多的程序。 基于线程的多任务处理环境中,线程是最小的处理单位。 线程与进程的区别 实现线程的方法 通过以下两种方法创建 Thread 对象: 声明一个 Thread 类的子类,并覆盖 run() 方法。 class mythread extends Thread { public void run( ) {/* 覆盖该方法*/ } } 声明一个实现 Runnable 接口的类,并实现 run() 方法。 class mythread implements Runnable{ public void run( ) {/* 实现该方法*/ } } 继承Thread类 线程程序执行代码 public void run( ) 启动线程 public void start( ) 参见例题12-1 通过接口Runnable构造线程类 类声明形式 public class A extends B implements Runnable { // ... public void run( ) { // ... } } 通过接口Runnable构造线程类 构造和启动线程的方法 A a = new A( ); Thread t = new Thread(a); t.start( ); 参见例题12-2 本课程纲要 线程周期 线程的周期 新建状态(New) 就绪状态(Runnable) 运行状态(Running) 阻塞状态(Blocked) 终止状态(Dead) 本课程纲要 线程优先级 JAVA中每个线程都有优先级. 缺省时,线程继承父进程的优先级 设置优先级的原则: 占用资源较多的线程优先级设置较低 占用资源较少的线程优先级设置较高 优先级是否起作用还取决于线程所运行的操作系统. 参见例题12-3 线程优先级 Java 中的线程优先级是在 Thread 类中定义的常量 NORM_PRIORITY : 值为 5 MAX_PRIORITY : 值为 10 MIN_PRIORITY : 值为 1 缺省优先级为 NORM_PRIORITY 有关优先级的方法有两个: final void setPriority(int newp) : 修改线程的当前优先级 final int getPriority() : 返回线程的优先级 Thread 类中的重要方法 Thread 类中的重要方法 线程的常用控制方法 Thread.sleep():表示线程暂时停止运行一段时间,在这段时间内线程处于阻塞状态,将不能运行,当休眠时间结束后,线程将进入可运行状态。 join()方法:如果线程的语句中调用了join方法,那么当前线程一定要等待调用join的线程运行完了才会运行。 .Thread.yield()方法 :当前线程调用该方法后将放弃运行状态,给其它优先级相同的、处在可运行状态的线程运行的机会。 参见例题12-3和12-4 本章课程纲要 本课程纲要 为何需要线程同步 多线程程序需要在线程中共享公共资源 线程之间会并发工作 线程需要协调工作来避免随机并发工作带来的问题 线程同步处理可以使线程协调工作。 线程同步与异步的区别 如何在 Java 中获得同步 两种方式实现同步: 使用同步方法 synchronized void methodA() { } 使用同步块 synchronized(object) { //要同步的语句 } 本课程纲要 使用同步方法 class One { synchronized void display(int num) { System.out.print(+num); try { Thread.sleep(1000); } catch(InterruptedException e) { System.out.println(中断); } System.out.println( 完成); } } 使用同步方法 本课程纲要 使用同步块 class One { void display(int num) { System.out.print(+num); try {

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档