4つのランダム番号を生成
2205 ワード
一度に4つのランダム番号、12ビットを生成し、アルファベットと数字の組み合わせができ、規則的ではなく、1年以内に繰り返すことはできません.同時性を考慮しなければならない.以前のものと比較しないで、生成した後に重複しないことを保証します.
同時性を考慮して生成番号のクラスを単例モードに設計し,ロックすればよい.
public class RandomUuid
{
public static void main(String []args)
{
String uuid = java.util.UUID.randomUUID().toString();
String s = uuid.toString().replaceAll("-", "").substring(0, 12);
System.out.println(uuid);
System.out.println(s);
}
}
:3e11650d-a030-4eb4-bda0-94be301839a4
3e11650da030
同時性を考慮して生成番号のクラスを単例モードに設計し,ロックすればよい.
package littlejava;
public class RandomUuid
{
private static RandomUuid ruuid = new RandomUuid();
private RandomUuid()
{
}
public static RandomUuid getRandomUuidInstance()
{
return ruuid;
}
public synchronized String getUUID12()// , uuid( )
{
return java.util.UUID.randomUUID().toString().replaceAll("-", "").substring(0, 12);
}
}
public class MyTask implements Runnable{
@Override
public void run() {
String temp;
for(int i=0;i<100;i++)
{
RandomUuid ru= RandomUuid.getRandomUuidInstance();
temp=ru.getUUID12();
System.out.println(temp);
}
}
}
public class UuidMain {
public static void main(String [] args)
{
MyTask mytask= new MyTask();
Thread t1 = new Thread(mytask);
Thread t2 = new Thread(mytask);
Thread t3 = new Thread(mytask);
Thread t4 = new Thread(mytask);
Thread t5 = new Thread(mytask);
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}
:45d5a53d3d39
313cdca23032
a066ae1e5121
821bfa0926de
2daa8e159355
a71aac3cd10d
9087da9d940c
edc1d61eca33
53d8de5f8805
edb0e536236a
b09d2b27468c
72a0d88d9d8a
de09701f527a
3bf8bfebca07
f23957c45591