gpt4 book ai didi

java - java.util.UUID 线程安全吗?

转载 作者:IT老高 更新时间:2023-10-28 20:23:43 24 4
gpt4 key购买 nike

我问这个问题是因为以下观察

  1. 在高度多线程环境中的线程转储中获取此堆栈跟踪

    "http-80-200" daemon prio=10 tid=0x00002aaab4981000 nid=0x7520 waiting \
    for monitor entry [0x000000004fec7000]
    java.lang.Thread.State: BLOCKED (on object monitor)
    at java.security.SecureRandom.nextBytes(SecureRandom.java:433)
    - waiting to lock <0x00000000c00da220> (a java.security.SecureRandom)
    at java.util.UUID.randomUUID(UUID.java:162)
  2. 找到这个链接

    http://bugs.sun.com/view_bug.do?bug_id=6611830

如果 UUID 不是线程安全的,请推荐任何其他库(如果存在)。

最佳答案

UUID 是不可变的,因此它可能是线程安全的,但显然有一些 evil caching going on在一些使其不安全的访问器中(该错误现已修复)。

但是你的线程转储只是说一个线程正在等待 SecureRandom.nextBytes 的锁,该锁由 UUID.randomUUID 工厂使用,这绝对是 线程安全的。据我所知,当多个线程同时调用它时应该会发生这种情况。

关于java - java.util.UUID 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7212635/

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