java的synchronized關鍵字是堆某對象加鎖,可是咱們當須要對某個字符串加鎖怎麼辦java
好比對同一個訂單隻能有一個操做,可是對其餘訂單的操做不影響對象
使用 guava包下的 Interner 類blog
private static final Interner<String> pool = Interners.newWeakInterner(); synchronized ( pool.intern("Order_"+orderId)){ //TODO:something }