martes, 11 de febrero de 2014

Singleton

Please, see the links below:



2 comentarios:

  1. http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html

    Under the new Java Memory Model

    As of JDK5, there is a new Java Memory Model and Thread specification.

    Fixing Double-Checked Locking using Volatile

    JDK5 and later extends the semantics for volatile so that the system will not allow a write of a volatile to be reordered with respect to any previous read or write, and a read of a volatile cannot be reordered with respect to any following read or write. See this entry in Jeremy Manson's blog for more details.

    With this change, the Double-Checked Locking idiom can be made to work by declaring the helper field to be volatile. This does not work under JDK4 and earlier.

    // Works with acquire/release semantics for volatile
    // Broken under current semantics for volatile
    class Foo {
    private volatile Helper helper = null;
    public Helper getHelper() {
    if (helper == null) {
    synchronized(this) {
    if (helper == null)
    helper = new Helper();
    }
    }
    return helper;
    }
    }

    ResponderEliminar
  2. Nice article. There is also good java resource for beginners  visit Java Tutorials   

    ResponderEliminar