多线程实现的方式
- 方式2:实现Runnable接口
- 定义一个类MyRunnable实现Runnable接口
- 在MyRunnable类中重写run()方法
- 创建MyRunnable类的对象
- 创建Thread类的对象,把MyRunnable对象作为构造方法的参数
构造方法(部分) | 说明 |
---|---|
Thread(Runnable target); | 分配一个新的 Thread对象 |
Thread(Runnable target, String name); | 分配一个新的 Thread对象,并赋予名字 |
- 启动线程
- 多线程的实现方案有两种:
继承Thread类
实现Runnable接口 - 相比继承Thread类,实现Runnable接口的好处:
避免了Java单继承的局限性
适合多个相同程序的代码去处理同一个资源的情况,把线程和程序的代码,数据有效分离,较好的体现了面向对象的设计思想
以代码和内容形式讲解
MyRunnableDemo类
package Demo;
public class MyRunnableDemo {
public static void main(String[] args) {
//创建MyRunnable类的对象
Runnable mr = new MyRunnable();//多态
//创建Thread类的对象,把MyRunnable对象作为构造方法的参数
Thread tr1 = new Thread(mr,"菜徐琨打篮球");
Thread tr2 = new Thread(mr,"鸡你太美");
//启动线程
tr1.start();
tr2.start();
}
}
Runnable类
package Demo;
public class MyRunnable implements Runnable {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
}
输出的内容:
注意事项