为什么java线程池的submit既可以提交runnable也可以提交callable?
前言
大家好,今天鸡翅老哥继续带大家深入了解多线程,我们都知道多线程有两种实现方式,一种是实现runnable接口,一种是实现callable接口。那么线程池的submit提交方式,两种都可以作为参数传递。要知道submit是当需要返回值的情况下才使用,runnable是没有返回值,那么submit为什么可以接收两种呢,我们继续往下看。
submit方法解析
先看下submit的方法,来确定,确实可以提交两种方式。
我们定义一个线程池,来执行两个方法,第一种没有返回值,线程池会自动找到runnable接口,第二种有返回值,线程池会走callable接口的方式。这里大家可以直接点击submit进去,就可以看到具体走的哪个方法。
@Test
public void test(){
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(5,5,5, TimeUnit.SECONDS,new LinkedBlockingDeque<>(
为什么java线程池的submit既可以提交runnable也可以提交callable?最先出现在Python成神之路。
共有 0 条评论