java实现多线程就两种方法,一种是直接继承Thread类,另一种是实现Runnable接口
比如要实现两个线程,分别取名为 “线程1” 和 “线程2” ,让这两个线程分别输出20个数。下边通过两种方式实现:
1. 继承Thread类
public class Thread_exp extends Thread{
private String name;
public Thread_exp(String name){
this.name = name;
}
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(this.name + " "+ i);
}
}
}
在主方法中
public class Thread_demo {
public static void main(String[] args) {
Thread_exp t1 = new Thread_exp("线程1");
Thread_exp t2 = new Thread_exp("线程2");
t1.start();
t2.start();
}
}
2. 实现Runnable接口
public class runnable_exp implements Runnable {
private String name;
public runnable_exp(String name) {
this.name = name;
}
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(this.name + " 正在运行 " +i);
}
}
}
在主方法中:
public class Runnable_demo {
public static void main(String[] args) {
runnable_exp r1 = new runnable_exp("线程1");
runnable_exp r2 = new runnable_exp("线程2");
Thread t1 = new Thread(r1);
Thread t2 = new Thread(r2);
t1.start();
t2.start();
}
}
总结:
-
如果用Thread,需要
1.1 创建一个Thread类的子类
1.2 在子类中重写run方法,需要做什么任务就在run方法中写什么任务
1.3 在主方法中创建子类对象
1.4 子类对象调用 start() 方法 -
如果用Runnable,需要
2.1 创建一个Runnable接口的实现类
2.2 在实现类中重写run方法,run方法同上
2.3 在主方法中创建实现类接口对象
2.4 创建Thread类对象,并在其构造方法中传递上一步创建的Runnable实现 类接口对象
2.5 Thread对象调用start 方法