簡體   English   中英

ExecutorService命名約定Java

[英]ExecutorService naming conventions Java

我最近發現自己使用了一些ExecutorServices(SingleThreadScheduledExecutor和newFixedThreadPool),但是我對它們沒有任何好名字。

是否存在有關命名此類對象的任何准則或約定? 我見過用於SingleThreadScheduledExecutors之類的“ workerThread”之類的名稱,這是正確的嗎,因為它們不完全是線程?

盡管這主要基於意見,但我在代碼中使用了以下約定:

  • 引用ExecutorExecutorService的字段或參數稱為executorexecutorService 執行者的類型不能通過字段名稱來推斷,否則您以后不能輕易更改執行者的實現。
  • 實現RunnableCallable來實現長時間運行的操作的類通常會獲得后綴Task (例如LoadTaskComputationTask ,...)。 (由於這樣的操作不是線程,而是線程執行的 ,並且線程與操作之間通常沒有1:1的映射,因此將其稱為thread是錯誤的)。

這使代碼真正可讀,並且不對線程使用做任何假設,例如:

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

(根據使用的執行程序的類型,此示例可能以串行,並行或兩者之間的任何方式執行所有加載任務)。

關於“線程”一詞的注釋:

除了在極少數情況下必須從Thread子類化或創建引用(實際) Thread的字段的罕見情況之外,在任何地方都沒有使用線程一詞:

public class WorkerThread extends Thread { ... }

要么:

Thread thread = Thread.currentThread();

這個問題很相似 ,也許可以為您提供幫助。

您始終可以使用通用對象名稱+ PID +其他名稱來構建字符串,然后對結果進行哈希處理。 哈希沖突的機會非常低...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM