Random
在多个线程之间共享该类的一个实例是否有效?并nextInt(int)
特别从多个线程调用?
从某种意义上讲,它是线程安全的,当被多个线程使用时仍会生成随机数。
Sun / Oracle JVM实现使用同步和AtomicLong作为种子来提高线程之间的一致性。但是,文档中似乎并没有在所有平台上对此进行担保。
我不会编写要求这种保证的程序,尤其是当您无法确定nextInt()
调用顺序时。
尽管在阅读了许多关于的文章之后,我遇到了一个关于在Java中使用安全API的疑问。在下面的示例中。 } 谁能让我知道我在这里做的是对的吗?
下面简单脚本并行产生随机数 在使用单个线程时,上述脚本是确定性 然而,当使用多个线程时,它是部分随机,且包含线程之间的相关性(这可能是一个相当大的问题 我明白为什么我的代码不是线程安全的,但我不明白如何使它是线程安全的。是否可以不考虑线程的数量而具有确定性的输出? 目标是使产生与相同的输出(即线程数不会影响对象)。如果这不可能,则目标是产生与相同的输出。
问题内容: 我有一个应用程序,要求给定相同的随机种子,结果相同。但是我发现random.randint不是线程安全的。我已经尝试过互斥锁,但这不起作用。这是我的实验代码(很长但很简单): 我想编码打印 true,true ,但是它有机会给出 false,false 。如何制作线程安全的randint? 问题答案: 其他人指出了以线程安全方式使用的正确方法。但是我觉得必须指出,您编写的代码对任何内容
我在多线程环境中做的工作很少。所以,我需要知道below类的getInstance函数是否是线程安全的。这是单例类: 在getInstance函数(未注释)中,返回静态对象的引用。它需要线程安全机制吗? 在第二个getInstance(注释)中,如果singleObject为null,我们就创建对象。所以,它需要锁定机制,需要同步,对吧?
问题内容: 是乔达时间 类线程安全的?一旦从获得实例,是否可以由多个线程调用其各种解析方法?DateTimeFormatter的Javadocs没有提到线程安全性。 问题答案: 是的,它是: DateTimeFormat是线程安全的且不可变的,它返回的 格式化 程序也是如此。 等是Java的版本8 实现要求: 此类是不可变的并且是线程安全的。
问题内容: 我写了下面的Singleton类。我不确定这是否是线程安全的单例类吗? 谁能帮我这个?我在上述Singleton课堂上的任何想法都会有很大帮助。 更新代码: 我正在尝试将波希米亚建议纳入我的代码中。这是更新的代码,我得到了- 谁能看一下,让我知道这次是否正确? 问题答案: 但是有一个简单的技巧,可以让你的代码是线程安全的实现,并不需要同步!它称为“ 按需初始化持有人”习惯用法,它看起来