首页  

java随机数生成器     所属分类 java 浏览量 926
Random                java.util.Random
ThreadLocalRandom     java.util.concurrent.ThreadLocalRandom
SecureRandom          java.security.SecureRandom

Random 线程安全,但是多线程下可能性能比较低

高强度场景下,不要用Random ,因为它是线性可预测的

产生高强度的随机数,有两个重要的因素:种子和算法
如何获取近似随机的种子
收集计算机的各种信息,如键盘输入时间,CPU时钟,内存使用状态,硬盘空闲空间,IO延时,进程数量,线程数量等信息

SecureRandom 在类unix系统下,利用 /dev/random 来实现
最快的安全性要求不高的UUID 生成方法

ThreadLocalRandom.current().nextLong()


import java.security.SecureRandom; import java.util.Random; import java.util.concurrent.ThreadLocalRandom; public class RandomTest { private static final Random random = new Random(); private static final SecureRandom secureRandom = new SecureRandom(); public static void main(String[] args) throws Exception { for(int i=0;i<7;i++) { System.out.println(random.nextInt()); System.out.println(random.nextInt(100)); System.out.println(secureRandom.nextInt()); System.out.println(secureRandom.nextInt(100)); System.out.println(ThreadLocalRandom.current().nextInt()); System.out.println(ThreadLocalRandom.current().nextInt(100)); System.out.println("**********"); } } }
linux熵池太小导致随机函数阻塞

上一篇     下一篇
Java NIO Scatter Gather

java NIO SocketChannel

Java NIO 内存映射文件

ZGC指南

java GC 进化

CMS G1 ZGC 堆内存区别