Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在这个示例代码中如何实例化接口?_Java_Multithreading_Concurrency - Fatal编程技术网

Java 在这个示例代码中如何实例化接口?

Java 在这个示例代码中如何实例化接口?,java,multithreading,concurrency,Java,Multithreading,Concurrency,我正在阅读的一本手册包含了这个示例,其中创建了一个ScheduledExecutorService。但是,API显示,ScheduledExecutorService是一个接口,而不是一个类。那么,它是如何被实例化的呢 下面是显示的示例代码: 导入java.util.concurrent.ScheduledExecutorService; 导入java.util.concurrent.Executors; 导入java.util.concurrent.ScheduledFuture; 导入静态j

我正在阅读的一本手册包含了这个示例,其中创建了一个
ScheduledExecutorService
。但是,API显示,
ScheduledExecutorService
是一个接口,而不是一个类。那么,它是如何被实例化的呢

下面是显示的示例代码:

导入java.util.concurrent.ScheduledExecutorService;
导入java.util.concurrent.Executors;
导入java.util.concurrent.ScheduledFuture;
导入静态java.util.concurrent.TimeUnit.*;
类蜂鸣器控制{
专用最终计划执行器服务计划程序=
Executors.newScheduledThreadPool(1);
公众假期(分钟){
最终可运行蜂鸣器=新可运行(){
公开募捐{
System.out.println(“嘟嘟声”);
}
};
最终计划未来=
scheduleAtFixedRate(蜂鸣器,250,250毫秒);
时间表(
新的Runnable(){
公开募捐{
future.cancel(true);
}
},3秒);
而(!future.isDone()){
试一试{
睡眠(10);
}捕捉(中断异常e){
}
}
scheduler.shutdown();
}
公共静态void main(字符串[]args){
BeeperControl bc=新的BeeperControl();
bc.beepforamine();
}
}
是一个工厂方法,它返回实现
ScheduledExecutorService
接口的类

根据GrepCode:

publicstaticscheduledexecutorservice newScheduledThreadPool(int-corePoolSize,ThreadFactory-ThreadFactory){
返回新的ScheduledThreadPoolExecutor(corePoolSize,threadFactory);
}
因此,这里它返回了实现
ScheduledExecutorService
接口的
ScheduledThreadPoolExecutor
的新实例