Browse Source

fix randombug

Looly 5 years ago
parent
commit
b2dd13023f
2 changed files with 6 additions and 0 deletions
  1. 1 0
      CHANGELOG.md
  2. 5 0
      hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java

+ 1 - 0
CHANGELOG.md

@@ -20,6 +20,7 @@
 * 【core  】     修复NamedSql多个连续变量出现替换问题
 * 【core  】     修复NamedSql多个连续变量出现替换问题
 * 【core  】     修复Bean重名字段(大小写区别)获取数据出错的问题(issue#I1QBQ4@Gitee)
 * 【core  】     修复Bean重名字段(大小写区别)获取数据出错的问题(issue#I1QBQ4@Gitee)
 * 【http  】     修复SimpleServer响应头无效问题(issue#1006@Github)
 * 【http  】     修复SimpleServer响应头无效问题(issue#1006@Github)
+* 【core  】     修复ThreadLocalRandom共享seed导致获取随机数一样的问题(pr#151@Gitee)
 
 
 -------------------------------------------------------------------------------------------------------------
 -------------------------------------------------------------------------------------------------------------
 
 

+ 5 - 0
hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java

@@ -47,6 +47,11 @@ public class RandomUtil {
 	 * 获取随机数生成器对象<br>
 	 * 获取随机数生成器对象<br>
 	 * ThreadLocalRandom是JDK 7之后提供并发产生随机数,能够解决多个线程发生的竞争争夺。
 	 * ThreadLocalRandom是JDK 7之后提供并发产生随机数,能够解决多个线程发生的竞争争夺。
 	 *
 	 *
+	 * <p>
+	 *     注意:此方法返回的{@link ThreadLocalRandom}不可以在多线程环境下共享对象,否则有重复随机数问题。
+	 *     见:https://www.jianshu.com/p/89dfe990295c
+	 * </p>
+	 *
 	 * @return {@link ThreadLocalRandom}
 	 * @return {@link ThreadLocalRandom}
 	 * @since 3.1.2
 	 * @since 3.1.2
 	 */
 	 */