实现子线程的三种方式:
1.继承Thread类,重写run方法。
2.实现Runnable接口,重写run方法。 优点:因为Runnable是接口,所以可以实现"多继承";将run方法中的具体线程业务逻辑和Thread线程的开启控制解耦。 (run方法没有返回值)
3.实现Callable接口,重写call方法。 可以有返回值(线程任务的执行结果)。
Demo.java:
package cn.xxx.demo;
public class Demo {
public static void main(String[] args) {
SubRunnable sr = new SubRunnable();
Thread t = new Thread(sr); // 通过Runnable接口实现类的对象,创建子线程。
t.start(); // 开启子线程
}
}
SubRunnable(子线程业务类实现Runnable接口,重写run方法):
package cn.xxx.demo;
/*
* 实现线程的另一个方式,接口实现
* 实现接口Runnable,重写run方法
*/
public class SubRunnable implements Runnable{ // 实现Runnable接口 因为是接口所以可以实现"多继承"
public void run(){ // 重写run方法。 没有返回值
System.out.println("run..."); // 子线程的业务逻辑。
}
}