java - Executors 相对于 new Thread 的优势

标签 java multithreading threadpool executorservice

在 Java 程序中使用执行器比使用线程有什么好处。

比如

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

    //vs

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

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

最佳答案

是的,执行者通常会将可运行对象多路复用到他们创建的线程上;他们将限制和管理同时运行的线程数;它们将使自定义并发级别变得更加容易。一般来说,执行者应该比只创建裸线程更受欢迎。

关于java - Executors 相对于 new Thread 的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18496948/

相关文章:

java - 我应该先收集文件然后执行任务还是应该边收集边执行任务?)

java - java实现异步消息队列

database - 在ring网站中使用atom作为内存数据库

java - 抛出 TaskRejectedException 且线程池未满

c++ - pthread退出时运行函数

java - 将文本添加到具有条件的目录中的多个文件 (Java)

java - 使用 Gin 编译时遇到问题

java - JSF 页面在多次重新加载时卡住

java - 嵌入式tomcat找不到 Controller

java - 从同步列表中删除元素的正确方法