java的synchronized关键字是堆某对象加锁,但是我们当需要对某个字符串加锁怎么办
比如对同一个订单只能有一个操作,但是对其他订单的操作不影响
使用 guava包下的 Interner 类
private static final Interner<String> pool = Interners.newWeakInterner(); synchronized ( pool.intern("Order_"+orderId)){ //TODO:something }