簡體   English   中英

ThreadLocal 中的 UUID.randomUUID

[英]UUID.randomUUID within ThreadLocal

我正在查看以下方法,我想知道將UUID.randomUUID()放在ThreadLocal中是否有意義或不會引入無意的開銷:

class UUIDUtil {

// TODO: why putting randomUUID into ThreadLocal? Will this avoid contentions?
public static final ThreadLocal<UUID> generator = 
                    ThreadLocal.withInitial(UUID::randomUUID);

}

我應該在ThreadLocal保留randomUUID嗎? 如果是這樣,為什么?

如果多個線程要同時生成 UUID,將 UUID 放入 ThreadLocal 是否可以避免爭用?

當您查看 ThreadLocal 的 JavaDoc 時,您會發現一些示例代碼可用於為每個線程提供唯一編號(原始線程 ID 將被重用!!)。

使用此處的代碼,您將以 UUID 的形式為每個線程提供一個唯一的 ID。 這必須存儲在 ThreadLocal 實例中......

如果這有意義則另當別論,但它可用於記錄目的,因為它允許您像僅使用線程 id 一樣更清楚地區分線程。

暫無
暫無

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

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