一尘不染

执行者相对于新线程的优势

java

使用Executors而不是Java程序中的Thread有什么好处。

ExecutorService pool = Executors.newFixedThreadPool(2);
void someMethod() {
    //Thread
    new Thread(new SomeRunnable()).start();

    //vs

    //Executor
    pool.execute(new SomeRunnable());
}

执行程序是否只是限制它允许一次运行的线程数(线程池)?它是否实际上将可运行对象多路复用到它创建的线程上?如果不是,那只是避免每次都必须写新的Thread(runnable).start()的一种方法?


阅读 152

收藏
2020-12-03

共1个答案

一尘不染

是的,执行程序通常会将可运行对象多路复用到他们创建的线程上;他们将约束和管理一次运行的线程数;它们将使自定义并发级别变得容易得多。通常,执行者应该比仅创建裸线程更受青睐。

2020-12-03