Java 线程 Random.nextLong() 返回相同的数字

2024-03-26

我正在使用一个 OAuth 库,它调用 new Random().nextLong() 来生成随机数,但它在异步调用上生成相同的随机数。我已将其范围缩小到线程 Random.nextLong() 以便经常返回相同的确切数字。

有谁知道这是否是 Java 的已知限制?如果是这样,有人知道线程安全操作吗?

编辑:我正在使用 Java 1.6

编辑:这是我制作的一个小程序,用于测试我的较大应用程序中发生的情况。我运行了几次,而且应该更频繁地运行,当时间相同时,它会得出相同的随机数。请原谅我的快速编程。

public class ThreadedRandom {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub

    new ThreadedRandom().run();
}

private RandomNumberGenerator _generator;

public ThreadedRandom()
{
    _generator = new RandomNumberGenerator();
}

public void run()
{
    Runnable r = new Runnable() {
        @Override public void run() {
            System.out.println(System.currentTimeMillis()+"\t"+_generator.gen());
        }
    };

    Thread t1, t2;

    t1 = new Thread(r);
    t2 = new Thread(r);

    t1.start();
    t2.start();
}

private class RandomNumberGenerator {

    Random random;
    public RandomNumberGenerator()
    {
        random = new Random();
    }

    public Long gen() {
        return new Random().nextLong();
    }
}

}


您可能不希望每次都创建一个新的 Random 实例。而是拥有一个全球性的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 线程 Random.nextLong() 返回相同的数字 的相关文章

随机推荐

  • 通过单击行获取 HTML 表格单元格值

    如何获取 HTML 表格中的 TD 值 i e ID cell 1 cell 2 1 aaaa a2a2a2 2 bbbb b2b2b2 3 cccc c2c2c2 所以现在如果我单击单元格值 bbbb 我想获取所选行的所有值 id 2 c
  • SFINAE 模板专业化优先级

    include
  • 在 Bootstrap 3 模式中使用 jQuery DatePicker

    我想用jQuery UI 日期选择器在模态中 真正的问题是 如果我还想显示年份和月份 它会显示空选择 使用firebug 选项标签似乎位于模态下 这是我的 HTML div class modal dialog div class moda
  • iPhone UIActionSheet 自动旋转不起作用

    我读了很多相关内容 人们说 当其父级未设置为自动旋转时 它不会自动旋转 我尝试了一切但没有运气 我创建了基于视图的应用程序 v4 2 并带有一个执行此操作的按钮 UIActionSheet actionSheet UIActionSheet
  • 使用 BeautifulSoup 和 Requests 抓取多个分页链接

    Python 初学者在这里 我正在尝试从以下位置抓取所有产品dabs com 上的一个类别 http www dabs com category computing 11001 我已经设法抓取给定页面上的所有产品 但在迭代所有分页链接时遇到
  • 如何从 TreeExplainer 获取 shap_values 的特征名称?

    我正在做一个 shap 教程 并尝试获取数据集中每个人的 shap 值 from sklearn model selection import train test split import xgboost import shap impo
  • Hadoop 2.2.0 配置弃用

    我设置了 Hadoop 2 2 0 集群 现在运行我的 java 客户端来处理数据 运行我的 java 程序后 我注意到输出显示如下 13 11 18 11 44 44 INFO Configuration deprecation user
  • 理解“排序!”块

    现在我有一个数组 letter a b c a b c a b b 有人可以解释一下以下返回值吗 letter sort x letter count x gt b b a c c a b b a 当你定义一个sort or sort 阻止
  • 如何自定义 Flask admin QuerySelectMultipleField 选择?

    我在用flask admin允许管理员用户访问数据库 其中呈现一对多关系 编辑条目时 我希望下拉菜单仅显示满足条件的选项 我虽然query factory可以做到这一点 以下是我现在拥有的最小示例 class OneSideObj db M
  • 如何在L2E或EF中使用外键?

    我有一个User表有一个PrivilegeId外键指向aPrivilege表 并且是那里的主键 在Entity Framework中 VS不会生成PrivilegeId下的变量User为你 它将生成一个Privilege财产和Privile
  • 何时使用 numpy 与统计模块

    在使用一些统计分析工具时 我发现至少有 3 种 Python 方法可以计算平均值和标准差 不包括 自己动手 技术 np mean np std ddof 0 或 1 statistics mean statistics pstdev 和 或
  • 如何使 Visual Studio 立即窗口提供纯字符串输出?

    如果我在 Immediate 中评估生成长而复杂的字符串的内容 则调试器会对 C 字符串转义中的所有内容进行编码 因此我最终会得到一团乱麻 n t等等 然后我必须手动修复整个文本 这在以下情况下尤其令人烦恼 n 因为大多数文本编辑器无法进行
  • TinyXML:将文档保存为 char * 或字符串

    我尝试使用 TinyXML 从内存中读取和保存 而不是仅读取文件并将其保存到磁盘 看来文档的解析函数可以加载一个char 但是当我完成后 我需要将文档保存到 char 中 有人知道这件事吗 编辑 打印和流媒体功能不是我想要的 它们以可视格式
  • 如何检查传递的迭代器是否是随机访问迭代器?

    我有以下代码 它执行一些迭代器算术 template
  • Damas-Hindley-Milner 类型推理算法实现

    我正在寻找有关知名人士的信息Damas Hindley Milner 算法 https en wikipedia org wiki Hindley E2 80 93Milner type system为函数式语言进行类型推断 尤其是有关实现
  • npm 错误!错误:EPERM:不允许操作,取消链接

    操作系统 Windows 10 npm 版本 6 9 0 节点版本 12 4 0 我正在开发一个博览会应用程序 我想在我的 expo 应用程序上安装所有软件包 npm install 但是 发生了错误 17254 error Operati
  • Firestore 查询成本

    在Firestore上 我有一个社交应用程序 它将每个用户存储为文档 并根据一定距离内的用户进行查询 例如 如果用户启动了该应用程序 并且 50 英里内有 1 000 个用户 那么我是否需要为下载附近所有配置文件的 1000 次读取付费 如
  • 为什么此批处理脚本中的 FOR /f 循环评估空行?

    我正在尝试编写一个批处理脚本 该脚本获取 除其他外 计算机拥有的所有磁盘驱动器的列表 基本代码如下所示 REM Build the list of disk drives to monitor SETLOCAL enabledelayede
  • 如何将自定义对象传递到不同片段中的列表?

    所以我有我的MainActivity其中有一个BottomNavigationView 其中有 3 个不同的选项卡 当我单击它们时 它们会将我重定向到 3 个不同的片段 In FragmentA我有一个RecyclerView对于项目 每个
  • Java 线程 Random.nextLong() 返回相同的数字

    我正在使用一个 OAuth 库 它调用 new Random nextLong 来生成随机数 但它在异步调用上生成相同的随机数 我已将其范围缩小到线程 Random nextLong 以便经常返回相同的确切数字 有谁知道这是否是 Java