gpt4 book ai didi

java - ExecutorService 命名约定 Java

转载 作者:行者123 更新时间:2023-11-29 07:47:51 27 4
gpt4 key购买 nike

我最近发现自己在使用一些 ExecutorServices(SingleThreadScheduledExecutor 和 newFixedThreadPool),但我没有给它们起任何好名字。

关于命名这些类型的对象是否有任何类型的指南或约定?我看到像“workerThread”这样的名称用于 SingleThreadScheduledExecutors,这是否正确,因为它们不完全是线程?

最佳答案

虽然这主要是基于意见,但我在我的代码中使用了以下约定:

  • 引用ExecutorExecutorService 的字段或参数被命名为executorexecutorService。不应通过字段名称推断执行程序的类型,否则您之后无法轻易更改执行程序的实现。
  • 实现RunnableCallable 以实现长时间运行的操作的类通常获得后缀Task(如LoadTask, ComputationTask, ...)。 (由于这样的操作不是一个线程,而是一个线程执行,而且线程和操作之间通常不是1:1的映射,这样是错误的称它为线程)。

这使得代码真正可读,并且不对线程使用做任何假设,例如:

for (String fileName : fileNames) {
executor.execute(new LoadTask(fileName));
}

(根据所使用的执行程序的类型,此示例可能会串行、并行或介于两者之间的任何方式执行所有加载任务)。

关于“thread”这个词的一个注释:

thread 这个词没有在任何地方使用,除非我必须从 Thread 继承子类或创建一个引用(真实的) 的字段主题:

public class WorkerThread extends Thread { ... }

或:

Thread thread = Thread.currentThread();

关于java - ExecutorService 命名约定 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23990818/

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