private static Cache<Long, String> lock;
static{
lock = CacheBuilder.newBuilder()
//设置cache的初始大小为10,要合理设置该值
.initialCapacity(1000)
//设置并发数为5,即同一时间最多只能有5个线程往cache执行写入操作
.concurrencyLevel(2)
//设置cache中的数据在写入之后的存活时间为10秒
.expireAfterWrite(10, TimeUnit.SECONDS)
//构建cache实例
.build();
}
String value = lock.getIfPresent(OrderId);
if(StringUtils.isNotBlank(value)){
continue;
}
lock.put(OrderId, "i am a lock");
网友评论