gpt4 book ai didi

Java - Executors 有什么了不起?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:36:29 24 4
gpt4 key购买 nike

在没有 Java Executors 的生活中,必须为每个 Runnable 任务创建新线程。创建新线程需要线程开销(创建和拆卸),这会增加非执行程序程序的复杂性和时间浪费。

引用代码:

没有 Java 执行器 -

new Thread (aRunnableObject).start ();

使用 Java 执行器 -

Executor executor = some Executor factory method;
exector.execute (aRunnable);

底线是 Executors 抽象了如何管理线程的底层细节。

这是真的吗?

谢谢。

最佳答案

Bottom line is that Executors abstract the low-level details of how to manage threads. Is that true?

是的。

它们处理诸如创建线程对象、维护线程池、控制正在运行的线程数量以及优雅/不优雅关闭等问题。手工完成这些事情并非易事。

编辑

完全根据您的应用程序的精确需求调整的自定义实现相比,这样做可能会或可能不会影响性能。但很有可能:

  1. 您的自定义实现不会得到完美调整,并且
  2. 性能差异无论如何都不会显着。

此外,如果存在需要解决的问题,Executor 支持类允许您简单地调整各种参数(例如线程池大小)。我看不到使用 Executors 会如何显着影响垃圾收集开销,无论是哪种方式。

作为一般规则,您应该专注于简单而健壮地编写您的应用程序(例如,使用高级并发支持类),并且只在以下情况下担心性能:

  1. 您的应用程序运行“太慢”,并且
  2. 分析工具会告诉您您在特定领域遇到了问题。

关于Java - Executors 有什么了不起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3454473/

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