小星星Zxx000000 2016-03-30 02:38 采纳率: 0%
浏览 1367

Executor的执行方式?

我通过实现runable接口后定义任务后,把任务交给了Executor的实现类后,有她
帮我管理线程执行,Executor 她是把我的任务是同步执行还是异步的去执行?

  • 写回答

1条回答 默认 最新

  • 毕小宝 博客专家认证 2016-04-04 10:05
    关注

    首先,同步异步是处理请求的方式,是否立即返回处理结果告知调用者,这里不存在同步异步执行任务的概念。
    其次,Executor是java并发包中提供的一个创建线程池的工具类,而线程池分为多种,有单线程执行任务的,也有多线程执行任务的。
    例如:

     Executors.newCachedThreadPool()创建的是多线程,那么线程池中缓存了N个线程去执行任务,那么你的任务就是有多个线程并行执行的。同时可以有多个任务被执行。
     Executors.newSingleThreadExecutor()这个就是创建的是但线程,即线程池中只有一个线程池去执行你提交的任务,那么认为执行就是顺序执行的,即只能一个接一个执行。
    

    线程池的作用就是缓存线程,有线程去执行任务,各个任务之间是独立并行执行的。当然newSingleThreadExecutor这个就退化成单线程了。

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?