首页 > 解决方案 > 即使日食没有标记错误,演员如何在那里工作

问题描述

ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor)
Executors.newFixedThreadPool(numThreads);

当我查看 api 文档时,fixedThreadPool() 返回了一个执行器服务的实例,但是在这里我们将 fixedThreadPool() 转换为 ThreadPoolExecutor,这很奇怪,因为 ThreadPoolExecutor 实现了执行器服务,谁能解释一下这个转换是如何工作的?

标签: javamultithreadingconcurrencycastingthreadpool

解决方案


只需运行以下代码:

ExecutorService te = Executors.newFixedThreadPool(10);
System.out.println(te.getClass());

输出:

class java.util.concurrent.ThreadPoolExecutor

如您所见,返回的实例是ThreadPoolExecutor。这ExecutorService是一个接口并ThreadPoolExecutor实现它。
您可以从超类型转换为子类型。所以它正在工作。


推荐阅读