黑马程序员技术交流社区

标题: 线程池要怎么用 [打印本页]

作者: luofeng    时间: 2014-9-25 17:44
标题: 线程池要怎么用
用ExecutorService pool = Executors.newSingleThreadExecutor();来创建线程池,
可是查API文档却显示ExecutorService是一个接口,而且我也找不到所说的execute方法,
是怎么回事,线程池到底要怎么用?
作者: zuochbd    时间: 2014-9-25 20:11
ExecutorService的父接口是Executor接口.
Executor接口中有方法execute()

.......要看文档啊!
最好直接看源码.

可以直接把源码和文档当装在eclipse中. 用起来很方便.

奇怪的一点, 视频居然没有教大家怎么把文档和源码安装到eclipse中.



作者: luofeng    时间: 2014-9-25 23:22
caixingke 发表于 2014-9-25 20:11
ExecutorService的父接口是Executor接口.
Executor接口中有方法execute()

ExecutorService pool是怎么回事,ExecutorService不是接口吗,怎么可以实例化对象?
作者: zuochbd    时间: 2014-9-25 23:33
本帖最后由 caixingke 于 2014-9-25 23:35 编辑
luofeng 发表于 2014-9-25 23:22
ExecutorService pool是怎么回事,ExecutorService不是接口吗,怎么可以实例化对象? ...
实例化是必然会调用到构造函数的.ExecutorService是接口, 没有构造函数, 所以是不能实例化的.

接口A没有构造函数, 所以不能实例化.
但如果一个类B实了现接口A, 那么是可以这样的:
接口A  a = new 类B();
明白了吗?

如下:
ExecutorService pool = Executors.newScheduledThreadPool(5);
这行代码里的方法 newScheduledThreadPool(int)的内部中会去调用[实现了ExecutorService接口的类]的构造函数.

作者: luofeng    时间: 2014-9-26 22:55
caixingke 发表于 2014-9-25 23:33
实例化是必然会调用到构造函数的.ExecutorService是接口, 没有构造函数, 所以是不能实例化的.

接口A没有构 ...

懂了,谢谢。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2