public classRandom {//private static int index = 0;

static AtomicInteger index = new AtomicInteger(0);staticJedis jedis;public static voidmain(String[] args){

jedis=new Jedis("127.0.0.1", 6379);

new Thread(newRunnable() {

@Overridepublic voidrun() {while(true){

String timestamp= String.valueOf(newDate().getTime());

String key= timestamp + String.valueOf(newRandom().getIndex());

System.out.println("1:" +key );

String value=getKey(key);if(value!= null){

System.out.println("key:" +key);

index.set(1000);

}else{

setKey(key);

}

Thread.yield();if(index.get() == 1000)break;

}

}

}).start();new Thread(newRunnable() {

@Overridepublic voidrun() {while(true){

String timestamp= String.valueOf(newDate().getTime()) ;

String key= timestamp + String.valueOf(newRandom().getIndex());

System.out.println("2:" +key );

String value=getKey(key);if(value!= null){

System.out.println("key:" +key);

index.set(1000);

}else{

setKey(key);

}

Thread.yield();if(index.get() == 1000)break;

}

}

}).start();new Thread(newRunnable() {

@Overridepublic voidrun() {while(true){

String timestamp= String.valueOf(newDate().getTime()) ;

String key= timestamp + String.valueOf(newRandom().getIndex());

System.out.println("3:" +key );

String value=getKey(key);if(value!= null){

System.out.println("key:" +key);

index.set(1000);

}else{

setKey(key);

}

Thread.yield();if(index.get() == 1000)break;

}

}

}).start();/*try {

TimeUnit.MILLISECONDS.sleep(3000);

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println("size: " + map.size());*/}privateString getIndex(){

synchronized(Random.class){

index.getAndIncrement();if(index.get() == 1000)

index.set(0);return String.format("%03d", index.get());

}

}public static voidsetKey(String key){

synchronized(Random.class){

jedis.set(key, key);

}

}public staticString getKey(String key){

synchronized(Random.class){return jedis.get(key);

}

}

}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐