Java实现多线程有两种途径:继承Thread类和实现Runnable接口
Java实现多线程有两种途径:继承Thread类和实现Runnable接口。
- 继承Thread类:创建一个继承自Thread类的子类,重写run()方法,并在其中定义线程的任务。通过创建该子类的对象,调用start()方法来启动线程。这种方式简单直观,但由于Java不支持多重继承,因此如果继承Thread类,就无法继承其他类。
示例代码如下:
publicclassMyThreadextendsThread{
@Override
publicvoidrun(){
//线程的任务
}
publicstaticvoidmain(String[]args){
MyThreadthread=newMyThread();
thread.start();
}
}
示例代码如下:
publicclassMyRunnableimplementsRunnable{
@Override
publicvoidrun(){
//线程的任务
}
publicstaticvoidmain(String[]args){
MyRunnablemyRunnable=newMyRunnable();
Threadthread=newThread(myRunnable);
thread.start();
}
}
区别:
- 使用继承Thread类的方式,需要直接操作Thread类,而使用实现Runnable接口的方式,可以将任务和线程的操作分离,使代码更加清晰和易于维护。
- 继承Thread类的方式只能继承一个类,而实现Runnable接口的方式可以实现多个接口。这样,实现Runnable接口的类可以继承其他类,避免了单继承的限制。
- 继承Thread类的方式创建线程对象时,线程类即为创建的对象本身,而实现Runnable接口的方式创建线程对象时,线程类是通过传递实现了Runnable接口的对象作为参数传入Thread类的构造方法来创建的。
版权声明
本文仅代表作者观点,不代表博信信息网立场。