第9章-多线程.pptVIP

  • 3
  • 0
  • 约5.86千字
  • 约 33页
  • 2018-12-18 发布于广东
  • 举报
5.一个实现Runnabel 接口的类必须要实现的方法是() A: start() B: run() C: sleep() D: init() interrupt() 中断当前线程或线程组中的所有线程。线程在sleep()、wait()等方法中被阻塞时,可以通过调用interrupt()方法退出阻塞,并抛出InterruptException,然后可以捕获该异常以处理超时 join() 能够使当前执行的线程停下来等待,直至调用join()方法的那个线程结束,再恢复执行。 例如如有一个线程A正在运行,用户希望插入一个线程B,并且要求线程B执行完毕,然后再继续线程A,此时可以使用join()方法来完成这个需求。 例解 9.5 线程的终止P183 方法interrupt示例 public class ThreadInterrupt extends Thread { public void run() { try{ sleep(50000); // 延迟50秒 单位是ms毫秒,1000ms = 1s } catch(InterruptedException e) {System.out.println(catch +e.getMessage()); } } public static void main(String[] args) throws Exception{ Thread thread = new ThreadInterrupt(); thread.start(); System.out.println(在50秒之内按任意键中断线程); System.in.read(); thread.interrupt(); //thread.join(); System.out.println(线程已经退出); } } * 第9章 Java多线程 主要内容 9.1 多线程的使用 9.2 线程的概念 9.3 线程的创建 9.4 线程的生命周期及调度 9.5 线程的终止 9.1多线程的使用 进程:资源分配的基本单位 线程:调度的基本单位 使用多线程进行程序设计使程序可并发执行,提高程序执行效率。 9.1多线程的使用 程序代码为顺序执行的,如何将一个程序设计成多线程? 例如:一段程序代码要实现求1到1000的和以及1到1000的平方和。 并发和顺序执行的区别?并发的条件? //顺序执行程序 public class SimpleThreadTest { public static void main(String[] args) { int sum = 0; for(int i=1;i=1000;i++) sum += i; System.out.println(和:+sum); for(int i=1;i=1000;i++) sum += i*i; System.out.println(平方和:+sum); } } 9.1多线程的使用 步骤一:创建线程类 //线程类SumThread用于求1到1000的和 class SumThread extends Thread{ public void run(){ int sum = 0; for(int i=1;i=1000;i++) sum += i; System.out.println(和:+sum); } } 9.1多线程的使用 步骤一:创建线程类 //线程类SquareSumThread用于求1到1000的平方和 class squareSumThread extends Thread{ public void run(){ int sum = 0; for(int i=1;i=1000;i++) sum += i*i; System.out.println(平方和:+sum); } } 9.1多线程的使用 步骤二:在主函数中创建线程对象并启用线程 public class SimpleThread { public static void main(String[] args) { //创建线程对象 Thread sum = new SumThread(); Thread squareSum = new squareSumThread(); //启动线程 sum.start(); squareSum.start(); } } 9.1多线程的使用 练习1 用多线程实现求半径为5的圆的面积和周

文档评论(0)

1亿VIP精品文档

相关文档