前言:实现多线程编程的方式主要有:一种是继承 Thread 类,另一种是实现 Runnable 接口。 ----这样说来其实还有其他方式的实现啦,不过其他的方式还不太懂呀
其实Thread类张成这样:public class Thread implements Runnable
呵呵哒:Thread 类实现了 Runnable 接口,它们之间具有多态关系
因此:
1、继承Thread类创建线程:
Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例。
缺点:继承 Thread 类的方式创建新线程时,最大的局限就是不支持多继承,因为Java 语言的特点就是单根继承,
过程:启动线程的唯一方法就是:
1、先通过Thread类的start()实例方法---(这个方法表示:线程已经准备就绪啦)。
2、start()方法是一个native方法,它将启动一个新线程,并执行run()方法---(表示:线程运行了)。
实现:通过自己的类直接extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。例如:
public class MyThread extends Thread {
public void run() {
System.out.println("MyThread.run()+这里做自己想干的");
}
}
public class TestRunThread {
public static void main(String[] args) {
MyThread mythread = new MyThread();
mythread.start();
System.out.println(" 运行结束! ");
}
}
2、实现Runnable接口创建线程
如果自己创建的类已经extends一个父类,就无法直接extends Thread,(java不支持多继承嘛),此时,可以实现一个Runnable接口,如下:
public class MyThread extends OtherClass implements Runnable {
public void run() {
System.out.println("MyThread.run()");
}
public static void main(String[] args) {
MyThread myThread = new MyThread();
Thread thread = new Thread(myThread);
thread.start();
}
//或者
public class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println(" 运行中 !");
}
}
public class MyThread extends OtherClass{
public static void main(String[] args) {
Runnable runnable=new MyRunnable();
Thread thread=new Thread(runnable);
thread.start();
System.out.println(" 运行结束 !");
}
}