问题描述
for (int i = 0; i < 1000; i++) {
//如果把idworker移到这里 改成随机 为什么id就会有很多重复
IdWorker idWorker = new IdWorker(new Random().nextInt(30), 0);
....
}
for (int i = 0; i < 1000; i++) {
//如果把idworker移到这里 改成随机 为什么id就会有很多重复
IdWorker idWorker = new IdWorker(new Random().nextInt(30), 0);
....
}
IdWorker 放里面 = =,那两个参数是用在分布式的时候,31*31 最多961台。
一个项目里面只用一个IdWorker实例,
Random 在方法里面应该也只用一个,
“即种子用于随机数生成器初始化值,随机生成器对于特定的种子值总是产生相同的随机数序列。一般Random random = new Random();系统采取当前时间毫秒数做种子数做到随机不然的话写了种子数随机数就是定值了”
--https://blog.csdn.net/xjk201/...
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
new Random().nextInt(30) 返回值应该是0到30吧