本文主要是介绍FixedThreadPool,submit,execute,Callable,Runnable实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一般使用线程池执行任务都是调用的execute方法,这个方法定义在Executor接口中:
public interface Executor {
void execute(Runnable command);
}
这个方法是没有返回值的,而且只接受Runnable。
那么像得到线程的返回值怎嘛办呢?
在ExecutorService接口中能找到这个方法:
<T> Future<T> submit(Callable<T> task);//返回的结果是类型T
<T> Future<T> submit(Runnable task, T result);//返回的结果是类型T,之前要把结果的对象传进入
Future<?> submit(Runnable task);//返回结果是字符串"null"
这个方法接收两种参数,Callable和Runnable。返回值是Future。
下面具体看一下这些是什么东西。
Callable和Runnable
先看一下两个接口的定义:
Callable
public interface Callable<V> {
V call() throws Exception;
}
Runnable
interface Runnable {
public abstract void run();
}
和明显能看到区别:
Callable能接受一个泛型,然后在call方法中返回一个这个类型的值。而Runnable的run方法没有返回值
Callable的call方法可以抛出异常,而Runn
这篇关于FixedThreadPool,submit,execute,Callable,Runnable实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!