gpt4 book ai didi

java - Executors.newFixedThreadPool(1) 和 Executors.newSingleThreadExecutor() 的区别

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:47 26 4
gpt4 key购买 nike

我的问题是:使用 Executors.newFixedThreadPool(1) 有意义吗??。在两个线程(main + oneAnotherThread)场景中使用执行器服务是否有效?通过调用 new Runnable(){ } 直接创建新线程是否比使用 ExecutorService 更好?在这种情况下使用 ExecutorService 有哪些优点和缺点?

PS:主线程和 oneAnotherThread 不访问任何公共(public)资源。

我已经完成了:What are the advantages of using an ExecutorService? .和 Only one thread at a time!

最佳答案

does it make sense to use Executors.newFixedThreadPool(1)?

它本质上与 Executors.newSingleThreadExecutor() 相同,只是后者不可重新配置,如 javadoc 中所示,而前者是将其转换为 ThreadPoolExecutor

In two threads (main + oneAnotherThread) scenarios is it efficient to use executor service?

执行器服务是围绕线程的非常薄的包装器,可显着促进线程生命周期管理。如果您唯一需要的是 new Thread(runnable).start(); 并继续,那么就没有真正需要 ExecutorService。

在大多数现实生活中,可以监视任务的生命周期(通过返回的 Future),执行者将根据需要重新创建线程未捕获的异常、回收线程与创建新线程相比的性能提升等使执行程序服务成为更强大的解决方案,而且成本极低。

底线:我没有看到使用执行程序服务与线程相比有任何缺点。

The difference between Executors.newSingleThreadExecutor().execute(command) and new Thread(command).start();详细介绍两个选项之间行为上的细微差别。

关于java - Executors.newFixedThreadPool(1) 和 Executors.newSingleThreadExecutor() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21300924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com