Java多线程机制 历些毛子代枝大兽 XIDIAN UNIVERSITY ▣线程的生命周期与Java实现 ■同进程一样,一个线程也有从创建、运行到消亡的过程 >称为线程的生命周期 ■包括 > 创建(New)、可运行(Runnable)、运行中(Running)、 挂起(Not Runnable)、死亡(Dead)五种状态 ■Java多线程机制的实现 >java.lang中的线程类Thread封装了所有需要的线程操作控制 >提供了成熟的方法来控制一个线程的运行、休眠、挂起或停止 6
线程的生命周期与Java实现 ◼ 同进程一样,一个线程也有从创建、运行到消亡的过程 ➢ 称为线程的生命周期 ◼ 包括 ➢ 创建(New)、可运行(Runnable)、运行中(Running)、 挂起(Not Runnable)、死亡(Dead)五种状态 Java多线程机制 ◼ Java多线程机制的实现 ➢ java.lang中的线程类Thread封装了所有需要的线程操作控制 ➢ 提供了成熟的方法来控制一个线程的运行、休眠、挂起或停止 6
Java多线程机制 历些毛子种枝大学 XIDIAN UNIVERSITY ▣Java的默认多线程机制 ■在java中,每次程序运行至少启动2个线程 >一个是main线程,一个是垃圾收集线程 > 每当使用java命令执行一个类的时候,实际上都会启动一个JVM >每一个VM就是在操作系统中启动了一个进程 ■Java中线程的优先级 >Java线程的优先级用整数表示,取值范围是1~10,Thread类有以下三 个静态常量 -static int MAX PRIORITY,线程可以具有的最高优先级,取值为1O static int MIN_PRIORITY,线程可以具有的最低优先级,取值为1 -static int NORM PRIORITY,分配给线程的默认优先级,取值为5
Java多线程机制 Java的默认多线程机制 ◼ 在java中,每次程序运行至少启动2个线程 ➢ 一个是main线程,一个是垃圾收集线程 ➢ 每当使用java命令执行一个类的时候,实际上都会启动一个JVM ➢ 每一个JVM就是在操作系统中启动了一个进程 ◼ Java中线程的优先级 ➢ Java线程的优先级用整数表示,取值范围是1~10,Thread类有以下三 个静态常量 - static int MAX_PRIORITY,线程可以具有的最高优先级,取值为10 - static int MIN_PRIORITY,线程可以具有的最低优先级,取值为1 - static int NORM_PRIORITY,分配给线程的默认优先级,取值为5
Java多线程机制 历些毛子种枝大” XIDIAN UNIVERSITY 口多线程程序的实现 ■两种方法 >通过继承线程类Thread:来创建线程类; >建立一个实现Runnablea接口的类来创建线程 ■方法一(继承Thread) >过程 继续Threaad:类 重写run0方法 实例化自定义 线程类对象 调用start(0方法 启动run0方法
Java多线程机制 多线程程序的实现 ◼ 两种方法 ➢ 通过继承线程类Thread来创建线程类; ➢ 建立一个实现Runnable接口的类来创建线程 8 继续Threaad类 重写run()方法 实例化自定义 线程类对象 ◼ 方法一(继承Thread) ➢ 过程 调用start()方法, 启动run()方法
Java多线程机制 历些毛子科枚大多 XIDIAN UNIVERSITY ■ 方法一(继承Thread) class testThread extends Thread public testThread(String str){ super(str);∥调用父类的构造方法为线程像命名 关键字 注释 3 public void run({ for (int i=0;i<3;i++){ System.out.println(getName0+"在运行"); try sleep(1000);∥用休眠1000毫秒来区分哪个线程在运行 System.out.println(getName0+"在休眠"); catch(InterruptedException e){} }//try-catch ends System.out.println(getName0+"已结束"); 1}//run ends }//class ends 9
Java多线程机制 class testThread extends Thread { public testThread(String str) { super(str); //调用父类的构造方法为线程对象命名 } public void run() { for (int i=0; i<3; i++) { System.out.println(getName()+"在运行"); try { sleep(1000); // 用休眠1000毫秒来区分哪个线程在运行 System.out.println(getName()+"在休眠"); } catch (InterruptedException e) {} } //try-catch ends System.out.println(getName()+"已结束"); } //run ends } //class ends 9 ◼ 方法一(继承Thread) 关键字 注释