Java中实现多线程有两种方式:使用Thread类和使用Runnable接口。这两种方式最主要的区别就是,使用Runnable实现的多线程程序可以多个线程共享同一个实例变量,而使用Thread实现的多线程程序则不行,每个线程都会拥有自己独立的实例变量。下面我们分别来详细讲解。
一、使用Thread类实现多线程
- 通过继承Thread类并重写run方法来实现多线程。线程启动之后,会自动调用run方法,以此完成线程的功能。
示例代码:
public class MyThread extends Thread {
private String name;
public MyThread(String name) {
this.name = name;
}
public void run() {
for (int i = 1; i <= 10; i++) {
System.out.println(name + "运行第" + i + "次");
}
}
}
public class TestMyThread {
public static void main(String[] args) {
MyThread t1 = new MyThread("线程1");
MyThread t2 = new MyThread("线程2");
t1.start();
t2.start();
}
}
- 通过创建Thread类的匿名对象来实现多线程。这种方式比较简单,但是不方便对对象进行操作。
示例代码:
public class TestAnonymousThread {
public static void main(String[] args) {
new Thread() {
public void run() {
for (int i = 1; i <= 10; i++) {
System.out.println("线程1运行第" + i + "次");
}
}
}.start();
new Thread() {
public void run() {
for (int i = 1; i <= 10; i++) {
System.out.println("线程2运行第" + i + "次");
}
}
}.start();
}
}
二、使用Runnable接口实现多线程
使用Runnable实现多线程的步骤是:创建Runnable接口的实例化对象,将该实例化对象交给Thread类的构造方法,然后调用start方法启动线程。
示例代码:
public class MyRunnable implements Runnable {
private int ticket = 5;
public void run() {
for (int i = 1; i <= 10; i++) {
if (ticket > 0) {
System.out.println("卖票:ticket = " + ticket--);
}
}
}
}
public class TestRunnable {
public static void main(String[] args) {
MyRunnable r = new MyRunnable();
Thread t1 = new Thread(r);
Thread t2 = new Thread(r);
Thread t3 = new Thread(r);
t1.start();
t2.start();
t3.start();
}
}
以上是Java中使用Thread类和Runnable接口实现多线程的区别,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中使用Thread类和Runnable接口实现多线程的区别 - Python技术站