<html>
  <head>
    <meta content="text/html; charset=ISO-8859-2"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Sziasztok!<br>
      <br>
      Itt van egy nagyon jó kis leírás a DCL problémáiról és a
      megoldásokról.<br>
      <a class="moz-txt-link-freetext" href="http://www.javamex.com/tutorials/double_checked_locking.shtml">http://www.javamex.com/tutorials/double_checked_locking.shtml</a><br>
<a class="moz-txt-link-freetext" href="http://www.javamex.com/tutorials/double_checked_locking_fixing.shtml">http://www.javamex.com/tutorials/double_checked_locking_fixing.shtml</a><br>
      <br>
      "Note that this is OK as of Java 5 <em>because</em> the
      definition of <tt>volatile</tt> was
      specifically changed to make it OK. Accessing a volatile variable
      has the semantics of synchronization
      as of Java 5. In other words Java 5 ensures that the
      unsycnrhonized volatile read <em>must</em> happen after
      the write has taken place, and the reading thread will see the
      correct values of all fields on <tt>MyFactory</tt>."<br>
      <br>
      Emberünk azt is leírja, hogy a volatile és a final (!) kulcsszavak
      szemantikája megváltozott Java 5-ben. Ettől a verziótól kezdve a
      final változó is elegendő, mert mindkét kulcsszó memory barrier-t
      is jelent, ami többek között azt is eredményezi, hogy:<br>
      - a regiszterváltózók szinkronizálásra kerülnek<br>
      - a referencia beállítása csak akkor történik meg, amikor az
      objektum már teljesen inicializált állapotban van.<br>
      <br>
      Tehát Java 5-től kezdve a Péter által a cikkben taglalt sorrendi
      probléma már nem jelentkezhet (az újabb JLS megköveteli a
      sorrendiséget).<br>
      <br>
      Üdv,<br>
      Stivi<br>
      <br>
      <br>
      On 2012-07-09 13:27, Laszlo Hornyak wrote:<br>
    </div>
    <blockquote
cite="mid:CAKRHFXWdvZv+--APPsM-=VCP0mZv3d_STOA-Cc-fa09hQJ77Mw@mail.gmail.com"
      type="cite">
      <pre wrap="">2012/7/9 Gábor Garami <a class="moz-txt-link-rfc2396E" href="mailto:gabor.garami@hron.me">&lt;gabor.garami@hron.me&gt;</a>:
</pre>
      <blockquote type="cite">
        <pre wrap="">Egykenel nem lenne megoldas az early check + synchronized?

public static Singleton getInstance() {
   if(instance != null) return instance;
   synchronized(instance) { /* foo */ ; return instance; }
}
</pre>
      </blockquote>
      <pre wrap="">Hali!

Asszem ez csak akkor mukodne teljesen megbizhatoan, ha az instance-t
volatile-nek jelolod. Kulonben amikor aszondod hogy "if(instance !=
null) return instance;" ezen a ponton ha mar valaki adott neki
erteket, de a te szaladban be van cacehlve egy null ertek, akkor
letrehozol egy uj peldanyt es azzal helyettesited be, mikozben egy
masik szal meg a regi erteket hasznalja. Szoval nem egeszen
bolondbiztos.

Egyszeru esetekben, amikor csak nem akarsz temp objektumokat
letrehozni es totalisan mentes az osztalyod minden konfiguraciotol, en
leginkab csak csinalni szoktam egy ilyet. (pl spring rowmapperek)

public final static KakukkRowMapper instance = new KakukkRowMapper();
//single instance
private KakukkRowMapper() {} //no nyuka-piszka!


</pre>
      <blockquote type="cite">
        <pre wrap="">
A ket return persze csunya.

Garami Gábor
E-mail: <a class="moz-txt-link-abbreviated" href="mailto:gabor.garami@hron.me">gabor.garami@hron.me</a>
Tel: +36 20 235 9621
MSN: <a class="moz-txt-link-abbreviated" href="mailto:hrgy@vipmail.hu">hrgy@vipmail.hu</a>
Skype: hron84



2012/7/9 <a class="moz-txt-link-rfc2396E" href="mailto:istvan.ketler@lhsystems.com">&lt;istvan.ketler@lhsystems.com&gt;</a>
</pre>
        <blockquote type="cite">
          <pre wrap="">
Szia,



Egyszerű öröklődés: már a legelején a jó B konstruktor van, benne van a
super(n). Ezt gondolom nem így akartad.



Optimalizálás: nem gondolkodtam a miérteken, de a számok azt mutatják,
hogy a programozó által "optimálisnak" gondolt megoldás sokszor nem jobb,
sőt akár rosszabb is lehet, mint a "lassúnak" vélt megoldás. Ez az igazság
azt hiszem ismét beigazolódott.



Jó kis posztok, bár az egyke esetén is hasznos lett volna leírni a
gondolkodni lusták számára, hogy miért az a megoldás, ami...



Üdvözlettel,



Iván

István Ketler
Senior Consultant

Lufthansa Systems Hungaria Kft.
Development Center Pest
Neumann János u. 1/e
1117 Budapest
Hungary

Tel: +36 1 887-2815
Fax: +36 1 887-2977
Mobile: +36 30 600-4936

Room: Infopark E, Room LH2-24

e-mail: <a class="moz-txt-link-abbreviated" href="mailto:istvan.ketler@lhsystems.com">istvan.ketler@lhsystems.com</a>
Internet: <a class="moz-txt-link-abbreviated" href="http://www.LHsystems.hu">www.LHsystems.hu</a>





Sitz der Gesellschaft / Corporate Headquarters: Lufthansa Systems Hungaria
Kft, Budapest, Fövarosi Birosag 01-09-463417
Geschaeftsfuehrung / Management Board: Monika Houck


From: <a class="moz-txt-link-abbreviated" href="mailto:javalist-bounces@lists.javaforum.hu">javalist-bounces@lists.javaforum.hu</a>
[<a class="moz-txt-link-freetext" href="mailto:javalist-bounces@lists.javaforum.hu">mailto:javalist-bounces@lists.javaforum.hu</a>] On Behalf Of Peter Verhas
Sent: Monday, July 09, 2012 10:35 AM
To: Java lista
Subject: [Javalist] új Java blog



Új java blog magyarul



<a class="moz-txt-link-freetext" href="http://tifyty.wordpress.com/">http://tifyty.wordpress.com/</a>





Írok benne mindenféle hülyeséget, aztán majd jól megköpköditek.



--
Verhás Péter
<a class="moz-txt-link-abbreviated" href="mailto:peter@verhas.com">peter@verhas.com</a>
+36(30)9306805
skype: verhas

</pre>
        </blockquote>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>