线程(一)
今天学习了在java中创建线程的三种方法。
(一)采用继承创建线程
通过继承java.lang.Thread类,并覆盖Thread类的run方法来完成线程的创建
public class MyThread extends Thread{
public void run(){ //必须有run方法
***
}
}
之后创建对象来调用start方法来开启线程。
(二)通过实现接口来创建线程
通过实现java.lang.Runnable 接口的类创建多线程。Runnable 接口并没有任何对线程的支持,还必须创建Thread实例,通过Thread类的构造方法 public Thread (Runnable target)实现。
(三)通过实现Callable接口来创建线程
通过实现java.util.concurrent .Callable接口的类创建多线程。在Callable接口中的call方法有返回值。在这种方法中还需要用到FutureTask类
在这个类中有get()方法可以获取到返回值。
这个类继承于RunnableFuture接口
而这个接口又实现了Runnable接口,所以开启线程还需用Thread的start()方法。
(四)java.lang.Runnable 和 java.util.concurrent .Callable 的区别
- Runnable在jdk 1.0就有 Callable在 jdk 1.5才有的
- Runnable提供run()方法没返回值,Callable 提供call()方法有返回值