Map m = Collections.synchronizedMap(new HashMap());
      ...
  Set s = m.keySet();  // Needn't be in synchronized block
      ...
  synchronized(m) {  // Synchronizing on m, not s!
      Iterator i = s.iterator(); // Must be in synchronized block
      while (i.hasNext())
          foo(i.next());
  }这是java帮助文档里(Collections下)的一段代码,我不知道foo()这个是什么函数具体干什么的?
还有,synchronized(m) {}这种写法是怎么回事?不懂。