小星星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这个就退化成单线程了。

    评论

报告相同问题?