Java中如何实现线程?各有什么优缺点,比较常用的是那种,为什么?
在Java中,实现线程主要有两种方式:继承Thread
类和实现Runnable
接口。下面是这两种方式的详细比较,包括优缺点和常用情况。
Thread
类class MyThread extends Thread {
public void run() {
// 线程要执行的代码
System.out.println("Thread is running");
}
}
// 使用
MyThread thread = new MyThread();
thread.start();
Thread
类的方法,如getName()
、setPriority()
等。Thread
类后就不能再继承其他类。Runnable
对象。Runnable
接口class MyRunnable implements Runnable {
public void run() {
// 线程要执行的代码
System.out.println("Thread is running");
}
}
// 使用
Thread thread = new Thread(new MyRunnable());
thread.start();
Runnable
接口。在实际开发中,通常推荐使用实现Runnable
接口的方式。这是因为:
Runnable
实例,便于管理和维护。Thread
类是一个快速的选择。Runnable
接口。Executor
框架提供了更高级的线程管理方式,通常在现代Java开发中更为常用。