クロージャーなんかよりも、入出力ストリームや Lock 使った try-finally 使いまくりのコードを
きれいに書ける構文考えてくれよ。synchronized と違和感ないような (これもブロック抜けるときに
モニタ開放するし)。

try(Writer out = new FileWriter("foo.txt")){
  ...
} catch(IOException ex){...}

↓みたいな。二重tryでもいいや。

Writer out;
try{
  out = new FileWriter("foo.txt")){
  ...
} catch(IOException ex){
  ...
} finally{
  try{ if(out != null) out.close(); } catch(IOException ex){throw new RuntimeException(ex);}
}