西北野狼
我的github: https://github.com/soyoungboy
我的segmentfault: http://segmentfault.com/u/soyoungboy
【不积跬步,无以至千里;不积小流,无以成江海】
博客园 首页 新随笔 联系 订阅
管理
· 每年拯救50万人的性命,人类离消灭疟疾还有多远?
· 小声比比:我承认,我们一二三四,四个人是有组织攻击马蜂窝的!
· 专访港珠澳大桥总工程师林鸣、岛隧总设计师、总设计师孟凡超
· 港珠澳大桥就要通车了,它都用到了哪些顶尖科技?
· Linus Torvalds重新负责内核开发
» 更多新闻... 最新知识库文章:
· 阿里云的这群疯子
· 为什么说 Java 程序员必须掌握 Spring Boot ?
· 在学习中,有一个比掌握知识更重要的能力
· 如何招到一个靠谱的程序员
· 一个故事看懂“区块链”
» 更多知识库文章... 历史上的今天:
2017-10-13 JdbcTemplate的使用
昵称:西北野狼
园龄:5年2个月
粉丝:53
关注: 4 +加关注
我的github: https://github.com/soyoungboy
我的segmentfault: http://segmentfault.com/u/soyoungboy
【不积跬步,无以至千里;不积小流,无以成江海】
博客园 首页 新随笔 联系 订阅
管理
Java线程池中submit()和execute之间的区别?
一:
submit()方法,可以提供Future < T > 类型的返回值。
executor()方法,无返回值。
execute无返回值
public void execute(Runnable command) {
if (command == null)
throw new NullPointerException();//抛掉异常
int c = ctl.get();
if (workerCountOf(c) < corePoolSize) {
if (addWorker(command, true))
return;
c = ctl.get();
}
if (isRunning(c) && workQueue.offer(command)) {
int recheck = ctl.get();
if (! isRunning(recheck) && remove(command))
reject(command);
else if (workerCountOf(recheck) == 0)
addWorker(null, false);
}
else if (!addWorker(command, false))
reject(command);
}
submit有Future返回值 :
/**
* @throws RejectedExecutionException {@inheritDoc}
* @throws NullPointerException {@inheritDoc}
*/
public Future<?> submit(Runnable task) {
if (task == null) throw new NullPointerException();
RunnableFuture<Void> ftask = newTaskFor(task, null);
execute(ftask);
return ftask;
}
/**
* @throws RejectedExecutionException {@inheritDoc}
* @throws NullPointerException {@inheritDoc}
*/
public <T> Future<T> submit(Runnable task, T result) {
if (task == null) throw new NullPointerException();
RunnableFuture<T> ftask = newTaskFor(task, result);
execute(ftask);
return ftask;
}
/**
* @throws RejectedExecutionException {@inheritDoc}
* @throws NullPointerException {@inheritDoc}
*/
public <T> Future<T> submit(Callable<T> task) {
if (task == null) throw new NullPointerException();
RunnableFuture<T> ftask = newTaskFor(task);
execute(ftask);
return ftask;
}
二:
excute方法会抛出异常。
sumbit方法不会抛出异常。除非你调用Future.get()。
三:
excute入参Runnable
submit入参可以为Callable
public interface Executor {
void execute(Runnable command);
}
public interface ExecutorService extends Executor {
...
<T> Future<T> submit(Callable<T> task);
<T> Future<T> submit(Runnable task, T result);
Future<?> submit(Runnable task);
...
} posted on 2018-10-13 23:49 西北野狼 阅读(60) 评论(0) 编辑 收藏 刷新评论刷新页面返回顶部 注册用户登录后才能发表评论,请 登录 或 注册,
访问网站首页。 最新IT新闻:· 每年拯救50万人的性命,人类离消灭疟疾还有多远?
· 小声比比:我承认,我们一二三四,四个人是有组织攻击马蜂窝的!
· 专访港珠澳大桥总工程师林鸣、岛隧总设计师、总设计师孟凡超
· 港珠澳大桥就要通车了,它都用到了哪些顶尖科技?
· Linus Torvalds重新负责内核开发
» 更多新闻... 最新知识库文章:
· 阿里云的这群疯子
· 为什么说 Java 程序员必须掌握 Spring Boot ?
· 在学习中,有一个比掌握知识更重要的能力
· 如何招到一个靠谱的程序员
· 一个故事看懂“区块链”
» 更多知识库文章... 历史上的今天:
2017-10-13 JdbcTemplate的使用
昵称:西北野狼
园龄:5年2个月
粉丝:53
关注: 4 +加关注
|
||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
|---|---|---|---|---|---|---|
| 30 | 1 | 2 | 3 | 4 | 5 | 6 |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | 1 | 2 | 3 |
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
搜索
常用链接
我的标签
- android 5.0(16)
- ormlite(3)
- AndroidGradle(2)
- java复习(2)
- swift object c学习(1)
- Swift or Object c(1)
随笔分类
- 【android 面试】(14)
- 【android】(194)
- 【android--bug】(33)
- 【android--openGL】(1)
- 【androidstudio--学习和使用经验】(2)
- 【android--Thread--线程池的使用】
- 【android--性能优化】(19)
- 【App研发录读书笔记】(6)
- 【Effactive Java】(2)
- 【Eventbus】(7)
- 【html5】(6)
- 【IOS】(3)
- 【J2EE】(35)
- 【J2EE面试题】(10)
- 【Java -- JDBC 学习】(12)
- 【java 1.8 新特性学习】(1)
- 【Java NIO -- IO高级进阶】(7)
- 【java 基础复习】(20)
- 【JavaWeb】(13)
- 【java多线程 -- 高级进阶】(13)
- 【JDK源码学习】(9)
- 【json异常】(2)
- 【Kotlin学习和实践】(1)
- 【maven学习】(4)
- 【MySQL】(2)
- 【phoneGap学习】(1)
- 【python 学习】(11)
- 【Rxjava学习】(1)
- 【Servlet】(2)
- 【sqlite高级进阶】(1)
- 【Volley学习和源码分析】(7)
- 【Web前端 -- JavaScript 学习和复习】(8)
- 【Web前端--Html&Css学习复习】(39)
- 【剑指offer java版实现】(2)
- 【设计模式复习】(26)
- 【深入理解java虚拟机】(3)
- 【数据结构与算法】(6)
- 【移动支付】(3)
- 【重构-改善既有代码的设计】
- 【自定义控件】(7)
随笔档案
- 2018年10月 (2)
- 2018年8月 (7)
- 2018年7月 (5)
- 2018年6月 (2)
- 2018年5月 (6)
- 2018年4月 (1)
- 2018年3月 (3)
- 2018年2月 (2)
- 2017年11月 (3)
- 2017年10月 (8)
- 2017年9月 (9)
- 2017年8月 (11)
- 2017年7月 (4)
- 2017年6月 (26)
- 2017年5月 (22)
- 2017年4月 (40)
- 2017年3月 (18)
- 2017年2月 (11)
- 2017年1月 (9)
- 2016年9月 (5)
- 2016年8月 (6)
- 2016年7月 (2)
- 2016年6月 (4)
- 2016年5月 (7)
- 2016年4月 (8)
- 2016年3月 (2)
- 2016年2月 (2)
- 2016年1月 (2)
- 2015年12月 (6)
- 2015年11月 (10)
- 2015年10月 (10)
- 2015年9月 (11)
- 2015年8月 (5)
- 2015年7月 (13)
- 2015年6月 (6)
- 2015年5月 (17)
- 2015年4月 (9)
- 2015年3月 (6)
- 2015年2月 (4)
- 2015年1月 (19)
- 2014年12月 (15)
- 2014年11月 (11)
- 2014年10月 (1)
- 2014年9月 (2)
- 2014年8月 (4)
- 2014年7月 (2)
- 2014年6月 (2)
- 2014年5月 (17)
- 2014年4月 (11)
- 2014年3月 (6)
- 2014年2月 (4)
- 2014年1月 (16)
- 2013年12月 (38)
- 2013年11月 (21)
- 2013年10月 (2)
- 2013年9月 (1)
- 2013年8月 (7)
My github
我的个人博客站点
积分与排名
- 积分 - 156573
- 排名 - 2074
最新评论
- 1. Re:编写高质量代码:改善Java程序的151个建议 --[98~105]
- 求助,如何用一个变量获取两个panel中的控件。而不是像如下代码单独获取。
Components[ ] items=panel1.getComponents( ) - --夕西行
- 2. Re:编写高质量代码:改善Java程序的151个建议 --[52~64]
- 这也是StringBuffer在性能上远远低于StringBuffer的原因。
这里笔误了吧. - --yi.shion
- 3. Re:编写高质量代码:改善Java程序的151个建议 --[0~25]
- 期待后续。。。
- --夜里挑灯看剑
- 4. Re:Android开发之adb无法连接
- 感谢楼主,这问题我搞了两天了,重装过两次AS,下过模拟器,网上说的各种adb的方法都试过结果都不行,结果在防火墙里添加了个信任就好了,总之非常感谢!!!
- --D_aisy
- 5. Re:Android开发之adb无法连接
- 为什么能和防火墙扯上关系?
- --那个人是否
阅读排行榜
- 1. Glide加载圆形图片(16280)
- 2. androidstudio--gsonformat--超爽的数据解析方式(11133)
- 3. android app 集成 支付宝支付 微信支付(7566)
- 4. 自定义控件之圆形颜色渐变进度条--SweepGradient(6943)
- 5. (转载)ANDROID STRINGS.XML 中的特殊字符转义(6037)
评论排行榜
- 1. material design 的android开源代码整理(4)
- 2. Android开发之adb无法连接(3)
- 3. LinkedHashMap 源码解析(2)
- 4. Spring -- AOP(2)
- 5. 如何在使用eclipse的情况下,清理android项目中的冗余class文件和资源文件以及冗余图片(2)
推荐排行榜
- 1. material design 的android开源代码整理(8)
- 2. 编写高质量代码:改善Java程序的151个建议 --[36~51](2)
- 3. Android开发之adb无法连接(2)
- 4. J2EE--常见面试题总结 -- ( 一)(1)
- 5. LinkedHashMap 源码解析(1)