2. 线程的创建方式二:实现Runnable接口 2.1 步骤: ① 创建一个实现Runnable接口的类 ② 实现接口中的run() -->将此线程要执行的操作,声明在此方法体中 ③ 创建当前实现类的对象 ④ 将此对象作为参数传递到Thread类的构造器中,创建Thread类的实例 ⑤ Thread类的实例调用start():1.启动线程 2.调用当前线程的run()
package chapter10_thread.src.com.atguigu01.create.runnable; /** * ClassName: EvenNumberTest * Package: chapter10_thread.src.com.atguigu01.create.runnable * Description: * 2. 线程的创建方式二:实现Runnable接口 * 2.1 步骤: * ① 创建一个实现Runnable接口的类 * ② 实现(重写)接口中的run() -->将此线程要执行的操作,声明在此方法体中 * ③ 创建当前实现类的对象 * ④ 将此对象作为参数传递到Thread类的构造器中,创建Thread类的实例 * ⑤ Thread类的实例调用start():1.启动线程 2.调用当前线程的run() * * @Author 小白 * @Create 2024/4/6 23:27 * @Version 1.0 */ public class EvenNumberTest { public static void main(String[] args) { /* * Thread() p1 = new EvenNumberPrint(); * */ //③ 创建当前实现类的对象 EvenNumberPrint p = new EvenNumberPrint(); //④ 将此对象p作为参数传递到Thread类的构造器[Thread类的构造器:new Thread()]中,创建Thread类的实例 Thread t1 = new Thread(p); //⑤ Thread类的实例调用start():1.启动线程 2.调用当前线程的run() t1.start(); //main方法对应的主线程执行操作: for (int i = 0; i <100 ; i++) { System.out.println(Thread.currentThread().getName() + ":" + i); } } } //① 创建一个实现Runnable接口的类 class EvenNumberPrint implements Runnable{ //② 实现(重写)接口中的run() -->将此线程要执行的操作,声明在此方法体中 @Override public void run() { for (int i = 0; i <100 ; i++) { System.out.println(Thread.currentThread().getName() + ":" + i); } } }
/* * 拓展:再创建一个线程,用于遍历100以内的偶数 * * */
package chapter10_thread.src.com.atguigu01.create.runnable; /** * ClassName: EvenNumberTest * Package: chapter10_thread.src.com.atguigu01.create.runnable * Description: * 2. 线程的创建方式二:实现Runnable接口 * 2.1 步骤: * ① 创建一个实现Runnable接口的类 * ② 实现(重写)接口中的run() -->将此线程要执行的操作,声明在此方法体中 * ③ 创建当前实现类的对象 * ④ 将此对象作为参数传递到Thread类的构造器中,创建Thread类的实例 * ⑤ Thread类的实例调用start():1.启动线程 2.调用当前线程的run() * * @Author 小白 * @Create 2024/4/6 23:27 * @Version 1.0 */ public class EvenNumberTest { public static void main(String[] args) { /* * Thread() p1 = new EvenNumberPrint(); * */ //③ 创建当前实现类的对象 EvenNumberPrint p = new EvenNumberPrint(); //④ 将此对象p作为参数传递到Thread类的构造器[Thread类的构造器:new Thread()]中,创建Thread类的实例 Thread t1 = new Thread(p); //⑤ Thread类的实例调用start():1.启动线程 2.调用当前线程的run() t1.start(); //main方法对应的主线程执行操作: for (int i = 0; i <100 ; i++) { System.out.println(Thread.currentThread().getName() + ":" + i); } /* * 拓展:再创建一个线程,用于遍历100以内的偶数 * * */ Thread t2 = new Thread(p); t2.start(); } } //① 创建一个实现Runnable接口的类 class EvenNumberPrint implements Runnable{ //② 实现(重写)接口中的run() -->将此线程要执行的操作,声明在此方法体中 @Override public void run() { for (int i = 0; i <100 ; i++) { System.out.println(Thread.currentThread().getName() + ":" + i); } } }