标签:
Java有两种方式实现多线程。
第一种——继承Thread类,并重写run方法
步骤:
实例:
public class MyThread extends Thread() { @Override public void run() { // 多线程代码 } // 其他代码 }
Thread t = new MyThread(); t.start();
第二种——实现Runnable接口,用该类的对象构造Thread类
步骤:
实例:
public class MyClass implements Runnable() { public void run() { // 多线程代码 } // 其他代码 }
MyClass m = new MyClass(); Thread t = new Thread(m); t.start();
start方法的功能
为什么可以有以上两种方式实现多线程?
对于第一种方式很容易理解。由于重写了Thread类的run方法,调用start方法启动线程后,jvm将调用子类重写的run方法;
对于第二种方式,调用start方法启动线程后,jvm将调用Thread类的run方法,其代码如下:
public void run() { if (target != null) { target.run(); }? }
其中target为Thread类的成员变量,类型为Runnable。在用Runnable对象构造Thread时,会使target引用该接口对象,所以执行target.run()时,实际上执行了接口对象的run方法。
标签:
原文地址:http://www.cnblogs.com/1206ricky/p/4906723.html