您的位置:首页 > 编程语言 > Java开发

java多线程之-线程创建方式

2017-12-01 12:15 381 查看

线程创建的几种方式

继承Thread类

public class Thread01 extends Thread{

@Override
public void run() {
//耗时任务
}

}


实现Runnable接口

public class Thread02 implements Runnable{

@Override
public void run() {
// 耗时任务
}

}


实现Callable接口

public class Thread03 implements Callable<Integer> {

@Override
public Integer call() throws Exception {//执行线程任务,带返回值
// TODO Auto-generated method stub
return 1;
}

}


调用方式:

//1.extends Thread方式
Thread01 thread01 = new Thread01();
thread01.start();

//2.implements Runnable方式
Thread02 thread02 = new Thread02();
new Thread(thread02).start();

//3.implements Callable方式
Thread03 thread = new Thread03();
FutureTask<Integer> task = new FutureTask<Integer>(thread);
new Thread(task).start();
System.out.println(task.get());


对于第三种方式,Future封装了call()的返回值,而FutureTask是Future的实现类,FutureTask通过get方法获取其返回值。

Callable与Runnable的区别

JDK1.5之前,我们主要通过前两种方式实现线程,JDK1.5之后引入了Callable接口的方式,主要是为了解决强两种方式的不足,不管Thread类还是Runnable接口都不能申明检查型异常,其实现方法也没有返回值。Callable跟Runnable差不多,主要区别在于:

Callable的实现方法为call().并且带有返回值

call()方法可以抛出异常

call()返回值由Future对象封装

好了,关于线程的三种创建方式接说到这儿
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  多线程
相关文章推荐