实现多线方式二:实现Runnable接口
Thread构造方法
方法名 说明
Thread(Runnable target) 分配一个新的Thread对象
Thread(Runnable target, String name) 分配一个新的Thread对象
实现步骤
1. 定义一个类MyRunnable实现Runnable接口
2. 在MyRunnable类中重写run()方法
3. 创建MyRunnable类的对象
4. 创建Thread类的对象,把MyRunnable对象作为构造方法的参数
5. 启动线程
代码演示
package com.geekdatas;
// 使用接口的好处就是不影响我MyRunnable继承其他的类
public class MyRunnable implements Runnable {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
// System.out.println(getName() + ":" + i);
// Thread.currentThread() 当前正在执行的线程
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
}
----------------------------------------------------------------------------
---
package com.geekdatas;
/*
方式2: 实现Runnable接口
① 定义一个类MyRunnable实现Runnable接口
② 在MyRunnable类中重写run()方法
③ 创建MyRunnable类的对象
④ 创建Thread类的对象,把MyRunnable对象作为构造方法的参数
⑤ 启动线程
*/
public class MyRunnableDemo {
public static void main(String[] args) {
// 创建MyRunnable类的对象
MyRunnable my = new MyRunnable();
// 创建Thread类的对象,把MyRunnable对象作为构造方法的参数
// Thread(Runnable target)分配一个新的Thread对象
// Thread t1 = new Thread(my);
// Thread t2 = new Thread(my);
// Thread(Runnable target, String name)分配一个新的Thread对象
Thread t1 = new Thread(my, "高铁");
Thread t2 = new Thread(my, "飞机");
// 启动线程
t1.start();
t2.start();
}
}
总结:
多线程的实现方案有两种:
继承Thread类
实现Runnable接口
相比继承Thread类,实现Runnable接口的好处
避免了Java单继承的局限性
适合多个相同程序的代码去处理同一个资源的情况,把线程和程序的代码、数据有效分离,较
好的体现了面向对象的设计思想