java线程
实现Callable接口,通过FutureTask包装器来创建线程,线程池
Callable接口可以提供返回值,比如卖票,卖完了以后可以return一个值回来
需要new一个FutureTask<>对象 泛型是返回值类型
然后通过Thread对象启动传入task对象
实现Callable接口的线程对象可以有返回值,返回值如何接收
使用FutureTask<返回值类型> 对象 对象.get可以获取该线程对象的返回值
public class Cow implements Callable{
private Integer age;
@Override
public String call() throws Exception {
return "go go go";
}
public static void main(String[] args) {
FutureTask<String> task = new FutureTask<String>(new Cow());
new Thread(task).start();
try {
System.out.println(task.get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
设置线程名称的方式
Spring 框架提供的 CustomizableThreadFactory
Google guava 工具类 提供的 ThreadFactoryBuilder
,使用链式方法创建
Apache commons-lang3 提供的 BasicThreadFactory