多数のスレッドから、同時にアクセスされる可能性があるファイルをロックするにはどうすればいいでしょうか?
最初に思いついたのは、こんなのですが

import java.util.*;
public class ThreadStoper {
 private volatile static Set ref = new HashSet();
 public synchronized void lock(Object key) {
  while(ref.contains(key)) {
   try {
    this.wait();
   } catch(Exception exe) {
    continue;
   }
  }
  ref.add(key);
 }
 public synchronized void ok(Object key) {
  ref.remove(key);
  this.notify();
 }
}

サーブレットに適したものを探しています
どうかおねがいします