Java线程池excute和submit分别在什么时候用,如何选择?
Java线程池excute和submit分别在什么时候用,如何选择?
有没有总结的最贱实践经验?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
Java线程池excute和submit分别在什么时候用,如何选择?
有没有总结的最贱实践经验?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
这种问题不是可以百度到吗....
submit有返回值. execute没返回值
拿到返回结果后可以自己做一些回调处理.
以
ThreadPoolExecutor
为例分析AbstractExecutorService#submit(java.lang.Runnable, T)
AbstractExecutorService#submit(java.lang.Runnable)
AbstractExecutorService#submit(java.util.concurrent.Callable<T>)
这3个重载函数,返回值是
Future<T>
类型而ThreadPoolExecutor#execute(Runnable)
返回值为void
,在submit
方法里面也调用了execute
方法都是用来执行任务,区别submit
返回Future
可以对任务状态判断、等待、取消和返回结果,而execute
是不能通过返回值来判断任务执行完成的状态。如何选择需要看业务场景。