Nic*_*Div 5 java uuid multithreading
我正在使用UUID.randomUUID()。toString()将唯一值附加到最终存储在数据库中且对它具有唯一约束的字符串
但是由于我的应用程序是多线程的,因此执行是在生成UUID的同时进行的,最终,将相同的UUID附加到字符串中,并且持久性失败。
有没有更好的方法来生成随机字符串,即故障安全方法。
我尝试调试,当我暂停其他线程并让它们一个接一个地运行时,它运行良好。
我目前正在使用以下代码来使其更加随机,但我不喜欢这种方法。
Random r = new Random();
List<Integer> uniqueNUmbers = new ArrayList<>();
for (int i=0;i<10;i++) {
int x=r.nextInt(9999);
while (uniqueNumbers.contains(x))
x=r.nextInt(9999);
uniqueNumbers.add(x);
}
String string = String.format("%04d", uniqueNumbers.get(0));
string = uuid + string;
Run Code Online (Sandbox Code Playgroud)
但这就像一个hacky代码。我不喜欢这样。
有没有人知道一种用于实际处理随机字符串的防故障方法。
| 归档时间: |
|
| 查看次数: |
1990 次 |
| 最近记录: |