>>862
つまり

if(!instance) {
 lock;
 if(!instance) {
  instance = new T;
 }
 unlock;
}
return instance;

で良いということ?