import java.util.concurrent.Callable;
/**
* 开启线程第三种方法
* @copyright:**软件
* @project: **项目第一期
* @author: pake35<pake35@126.com>
* @createDate: 2016-2-23
*/
public class ThreadC implements Callable<String>{
// 可以有返回结果
@Override
public String call() throws Exception {
try {
Thread.sleep(500L);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("这是线程C");
return "Thread C";
}
}
定义线程类
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* Callable
* @copyright:**软件
* @project:**项目第一期
* @author: pake35<pake35@126.com>
* @createDate: 2016-2-23
*/
public class ThreadMain1 {
public static void main(String[] args) {
ThreadC c= new ThreadC();
FutureTask<String> futureTask = new FutureTask<String>(c);
new Thread(futureTask).start();
System.out.println("主线程 begin!");
try {
System.out.println("得到的返回结果是 "+ futureTask.get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
System.out.println("主线程 end!");
}
}
返回结果:
主线程 begin!
这是线程C
得到的返回结果是 Thread C
主线程 end!