[英]ExecutorService naming conventions Java
我最近發現自己使用了一些ExecutorServices(SingleThreadScheduledExecutor和newFixedThreadPool),但是我對它們沒有任何好名字。
是否存在有關命名此類對象的任何准則或約定? 我見過用於SingleThreadScheduledExecutors之類的“ workerThread”之類的名稱,這是正確的嗎,因為它們不完全是線程?
盡管這主要基於意見,但我在代碼中使用了以下約定:
Executor
或ExecutorService
的字段或參數稱為executor
或executorService
。 執行者的類型不能通過字段名稱來推斷,否則您以后不能輕易更改執行者的實現。 Runnable
或Callable
來實現長時間運行的操作的類通常會獲得后綴Task
(例如LoadTask
, ComputationTask
,...)。 (由於這樣的操作不是線程,而是由線程執行的 ,並且線程與操作之間通常沒有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.