我最近发现自己使用了一些ExecutorServices (SingleThreadScheduledExecutor和newFixedThreadPool),但是我对它们没有任何好的名称。
是否有任何关于命名这类对象的指导方针或惯例?我见过像"workerThread“这样的名称用于SingleThreadScheduledExecutors,这是正确的吗,因为它们不完全是线程吗?
发布于 2014-06-02 16:23:03
虽然这主要是基于意见的,但我在代码中使用了以下约定:
Executor或ExecutorService的字段或参数称为executor或executorService。执行器的类型不应该根据字段的名称来推断,否则以后很难更改executor实现。Runnable或Callable以实现长时间运行操作的类通常有后缀Task (如LoadTask、ComputationTask、.)。(由于这样的操作不是线程,而是由线程执行的,而且通常在线程和操作之间没有1:1的映射,所以称它为线程是错误的。)这使得代码具有可读性,并且没有对线程的使用做出任何假设,例如:
for (String fileName : fileNames) {
executor.execute(new LoadTask(fileName));
}(此示例可能以串行方式、并行方式或之间的任何方式执行所有加载任务--根据所使用的执行器类型)。
关于“线程”这个词,有一点要注意:
线程一词在任何地方都不使用,只有少数情况下必须从Thread中子类或创建引用(真实) Thread的字段。
public class WorkerThread extends Thread { ... }或者:
Thread thread = Thread.currentThread();发布于 2014-06-02 12:18:58
This question is similar,它也许能帮到你。
您可以使用通用对象名+ PID +其他东西构建字符串,并对结果进行散列。哈希碰撞的几率很低..。
https://stackoverflow.com/questions/23990818
复制相似问题