Альтернатива синхронизированному блоку в java

Я использую следующий код для гарантированной переменной startTime, установленной только один раз:

public class Processor
{
    private Date startTime;

    public void doProcess()
    {
        if(startTime == null)
            synchronized(this)
            {
                  if(startTime == null)
                  {
                     startTime = new Date();
                  }
            }

        // do somethings
    }
}

Я гарантирую, что этот код для переменной создается только один раз для любого количества вызовов метода process.

Мой вопрос:

Есть ли альтернативный подход к моему коду, который будет более кратким? (для образца удалить операторы ifи synchronized)

10
задан Sam 25 July 2012 в 12:15
поделиться