有條件的同步方法


?2?//?定義鎖
?3?private?Map?locks?=?new?HashMap();
?4?private?Object?getLock(Object?key)?{
?5?????synchronized?(locks)?{
?6?????????if?(!locks.containsKey(key))?{
?7?????????????locks.put(key,?new?Object());
?8?????????}
?9?????????return?locks.get(key);
10?????}
11?}
12?


13?//?需要同步的代碼
14?synchronized?(getLock(id))?{
15?????//?TODO
16?}
17?


18?
posted on 2006-10-09 14:27 Xueping Yang 閱讀(1265) 評論(6) 編輯 收藏 所屬分類: 技術文章