好不容易找到一个靠谱的总结,其它帖子真的是大段复制粘贴。
原帖地址:http://blog.csdn.net/q_an1314/article/details/52468518
1、方法execute()没有返回值,而submit()方法可以有返回值(通过Callable和Future接口)
2、方法execute()在默认情况下异常直接抛出(即打印堆栈信息),不能捕获,但是可以通过自定义ThreadFactory的方式进行捕获(通过setUncaughtExceptionHandler方法设置),而submit()方法在默认的情况下可以捕获异常
3、方法execute()提交的未执行的任务可以通过remove(Runnable)方法删除,而submit()提交的任务即使还未执行也不能通过remove(Runnable)方法删除