gpt4 book ai didi

java - ThreadLocal 中的 UUID.randomUUID

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:01 24 4
gpt4 key购买 nike

我正在查看以下方法,我想知道将 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 一样更清楚地区分线程。

关于java - ThreadLocal 中的 UUID.randomUUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60553309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com