一、多线程的实现
二、继承Thread类
继承Thread类:
Thread类是java.lang包下的一个线程类,用来实现java多线程。通过继承Thread类的方式来实现多线程:
为什么要重写run()方法?
run()方法和start()方法的区别:
- run():封装线程执行的代码,直接调用,相当于普通方法的调用
- start():启动线程,然后由JVM调用此线程的run()方法
Thread类中获取和设置线程名称的方法
- setName():将此线程的名称更改为等于参数name
- getName():返回此线程的名称
- 设置和获取线程名称:
三、实现Runnable接口
上一种方式有一定的局限性,因为java只支持类的单继承,所以考虑通过实现Runnable接口的方式来实现多线程:
用Thread的方法:Thread.currentThread().getName()
public class MyThread implements Runnable {
public void run() {
for(int i=0;i<100;i++) {
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
}
MyThread my = new MyThread();
Thread t1 = new Thread(my,"giao哥");
Thread t2 = new Thread(my,"giao妹");
t1.start();
t2.start();
四、实现Callable接口
上两种方式,需要重写run()方法,但是由于该方法没有返回值,因此无法从多个线程中获取返回结果。为了解决这个问题,从JDK5开始,java提供了一个Callable接口,来满足这种能创建多线程又可以有返回值的需求。