首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExecutorService命名约定

ExecutorService命名约定
EN

Stack Overflow用户
提问于 2014-06-02 09:03:09
回答 2查看 1.9K关注 0票数 1

我最近发现自己使用了一些ExecutorServices (SingleThreadScheduledExecutor和newFixedThreadPool),但是我对它们没有任何好的名称。

是否有任何关于命名这类对象的指导方针或惯例?我见过像"workerThread“这样的名称用于SingleThreadScheduledExecutors,这是正确的吗,因为它们不完全是线程吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-02 16:23:03

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

  • 引用ExecutorExecutorService的字段或参数称为executorexecutorService。执行器的类型不应该根据字段的名称来推断,否则以后很难更改executor实现。
  • 实现RunnableCallable以实现长时间运行操作的类通常有后缀Task (如LoadTaskComputationTask、.)。(由于这样的操作不是线程,而是由线程执行的,而且通常在线程和操作之间没有1:1的映射,所以称它为线程是错误的。)

这使得代码具有可读性,并且没有对线程的使用做出任何假设,例如:

代码语言:javascript
复制
for (String fileName : fileNames) {
    executor.execute(new LoadTask(fileName));
}

(此示例可能以串行方式、并行方式或之间的任何方式执行所有加载任务--根据所使用的执行器类型)。

关于“线程”这个词,有一点要注意:

线程一词在任何地方都不使用,只有少数情况下必须从Thread中子类或创建引用(真实) Thread的字段。

代码语言:javascript
复制
public class WorkerThread extends Thread { ... }

或者:

代码语言:javascript
复制
Thread thread = Thread.currentThread();
票数 6
EN

Stack Overflow用户

发布于 2014-06-02 12:18:58

This question is similar,它也许能帮到你。

您可以使用通用对象名+ PID +其他东西构建字符串,并对结果进行散列。哈希碰撞的几率很低..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23990818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档