您的位置:首页 > 职场人生

[面试]java创建线程有几种方式?

2017-01-23 21:26 253 查看


一、继承Thread类创建线程子类

1.在这子类中重写run方法,在run方法内写线程任务代码

2.创建该子类实例,即是创建了一个线程实例

3.调用该实例的start方法来启动该线程


二、建一个类去实现Runnable接口

1.该类去实现接口的run方法,run方法内写线程任务代码

2.创建该类实例,把该实例当作一个标记target传给Thread类,如:Thread t = new Thread(该类实例);即创建一个线程对象

3.调用线程的start方法来启用该线程.


三、通过Callable 接口和 RunnableFuture创建线程

Callable<Integer> cl = new Callable<Integer>(){
public Integer call() throws Exception {
//业务逻辑...
return null;
}
};

FutureTask<Integer> ft =  new FutureTask<Integer>(cl); //实现了RunnableFuture 接口

Thread t = new Thread(ft);
t.start();



优劣:

二、三两种方式是实现某接口,可以去继承其他类,操作相对灵活,并且能多个纯种共享一个对象Thread t = new Thread(ft);里面的ft对象能多个线程共享,劣势是编程相对复杂

一种方式是继承Thread类,不能再继承其他类,编程相对简单
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  线程 java