繁体   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