<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://www.flaviocdc.net/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://www.flaviocdc.net/wiki/feed.php">
        <title>Flavio Casadei Della Chiesa Wiki java:jtt</title>
        <description></description>
        <link>http://www.flaviocdc.net/wiki/</link>
        <image rdf:resource="http://www.flaviocdc.net/wiki/lib/images/favicon.ico" />
       <dc:date>2023-11-07T06:08:33+01:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://www.flaviocdc.net/wiki/java:jtt:checkthenact"/>
                <rdf:li rdf:resource="http://www.flaviocdc.net/wiki/java:jtt:doublecheckedlockingidiom"/>
                <rdf:li rdf:resource="http://www.flaviocdc.net/wiki/java:jtt:esempiofuture"/>
                <rdf:li rdf:resource="http://www.flaviocdc.net/wiki/java:jtt:javaconcorrenza"/>
                <rdf:li rdf:resource="http://www.flaviocdc.net/wiki/java:jtt:javamemorymodel"/>
                <rdf:li rdf:resource="http://www.flaviocdc.net/wiki/java:jtt:javathreadtrabocchetti"/>
                <rdf:li rdf:resource="http://www.flaviocdc.net/wiki/java:jtt:nestedmonitorproblem"/>
                <rdf:li rdf:resource="http://www.flaviocdc.net/wiki/java:jtt:putifabsent"/>
                <rdf:li rdf:resource="http://www.flaviocdc.net/wiki/java:jtt:racecondition"/>
                <rdf:li rdf:resource="http://www.flaviocdc.net/wiki/java:jtt:readwritelock"/>
                <rdf:li rdf:resource="http://www.flaviocdc.net/wiki/java:jtt:start"/>
                <rdf:li rdf:resource="http://www.flaviocdc.net/wiki/java:jtt:triadedellamorte"/>
                <rdf:li rdf:resource="http://www.flaviocdc.net/wiki/java:jtt:unsafelazyinstantiation"/>
                <rdf:li rdf:resource="http://www.flaviocdc.net/wiki/java:jtt:unsafepublication"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://www.flaviocdc.net/wiki/lib/images/favicon.ico">
        <title>Flavio Casadei Della Chiesa Wiki</title>
        <link>http://www.flaviocdc.net/wiki/</link>
        <url>http://www.flaviocdc.net/wiki/lib/images/favicon.ico</url>
    </image>
    <item rdf:about="http://www.flaviocdc.net/wiki/java:jtt:checkthenact">
        <dc:format>text/html</dc:format>
        <dc:date>2008-12-14T19:37:55+01:00</dc:date>
        <title>java:jtt:checkthenact</title>
        <link>http://www.flaviocdc.net/wiki/java:jtt:checkthenact</link>
        <description>A cura di Flavio Casadei Della Chiesa

Chect then Act, schema di codice nel quale si effettua un controllo prima di eseguire un'azione.


// Check then act
.....
    if (test) {
        azione();
    } else  {
        altraAzione();
    }
.....


utilizzare questo codice in un ambiente concorrente può avere risultati inaspettati.
E' infatti possibile che dopo aver eseguito il test la condizione sia cambiata, in questo caso potrebbe venir invocata l'azione sbagliata.</description>
    </item>
    <item rdf:about="http://www.flaviocdc.net/wiki/java:jtt:doublecheckedlockingidiom">
        <dc:format>text/html</dc:format>
        <dc:date>2008-12-14T19:37:57+01:00</dc:date>
        <title>Double checked locking idiom</title>
        <link>http://www.flaviocdc.net/wiki/java:jtt:doublecheckedlockingidiom</link>
        <description>A cura di Flavio Casadei Della Chiesa


----------


Copyright (c)  2006  Flavio Casadei Della Chiesa.
     è garantito il permesso di copiare, distribuire e/o modificare
     questo documento seguendo i termini della Licenza per
     Documentazione Libera GNU, Versione 1.1 o ogni versione
     successiva pubblicata dalla Free Software Foundation.</description>
    </item>
    <item rdf:about="http://www.flaviocdc.net/wiki/java:jtt:esempiofuture">
        <dc:format>text/html</dc:format>
        <dc:date>2008-12-14T19:37:55+01:00</dc:date>
        <title>Esempio future</title>
        <link>http://www.flaviocdc.net/wiki/java:jtt:esempiofuture</link>
        <description>Banale esempio di utilizzo dell'interfaccia Future  a cura di Flavio Casadei Della Chiesa 



In questa pagina si vuole descrivere il funzionamento dell'interfaccia 'java.util.concurrent.Future'. 
Le API Java 5 dicono che 
un Future rappresenta il risultato di una computazione asincrona, ..., 
 il risultato può essere recuperato con il metodo get solamente quando la computazione è completata, eventualmente bloccando il chiamante fino a quando il risultato non è pronto.</description>
    </item>
    <item rdf:about="http://www.flaviocdc.net/wiki/java:jtt:javaconcorrenza">
        <dc:format>text/html</dc:format>
        <dc:date>2008-12-30T23:08:22+01:00</dc:date>
        <title>Java e Thread</title>
        <link>http://www.flaviocdc.net/wiki/java:jtt:javaconcorrenza</link>
        <description>A cura di Flavio Casadei Della Chiesa

In questa sezione del sito trovarete note, slide e discussioni sull'argomento scottante della programmazione concorrente in Java.

Non sono un esperto della materia, ritengo comunque di avere una base più solida di quella di un neofita. I contenuti in questa parte di sito sono da considerre come cose sentite da un non esperto, non devono quindi essere prese come dogmi o roba assolutamente funzionante.</description>
    </item>
    <item rdf:about="http://www.flaviocdc.net/wiki/java:jtt:javamemorymodel">
        <dc:format>text/html</dc:format>
        <dc:date>2008-12-14T22:44:00+01:00</dc:date>
        <title>Java Memory Model</title>
        <link>http://www.flaviocdc.net/wiki/java:jtt:javamemorymodel</link>
        <description>Java Memory Model è il capitolo 17 di Java Language Specification.

Un memory model definisce i possibili scenari e regole che governano più Thread all'interno di uno stesso sistena.
In memory model determina se alla JVM è permessa una particolare esecuzione di un programma.
Le specifiche Java non forzano le implementazioni delle JVM a seguire qualche particolare regola per l'esecuzione di un programma; questo da agli implementatori della JVM una grande flessibilità spesso utilizzata per permett…</description>
    </item>
    <item rdf:about="http://www.flaviocdc.net/wiki/java:jtt:javathreadtrabocchetti">
        <dc:format>text/html</dc:format>
        <dc:date>2009-04-16T12:20:10+01:00</dc:date>
        <title>Java, Thread e trabocchetti</title>
        <link>http://www.flaviocdc.net/wiki/java:jtt:javathreadtrabocchetti</link>
        <description>A cura di Flavio Casadei Della Chiesa


----------


'Cerco Aiuto'. Ho bisogno di qualcuno che mi dia una mano a tradurre in inglese le mie slide.
Inoltre avrei bisogno di un supporto grafico per dare un “rimbellimento” .....

Chiaramente l'unica ricompensa sarà la gloria :)
Inoltre potreste essere d'aiuto anche traducendo a modino la pagina inglese JavaThreadPitfalls ... ve ne sarei infinitamente grato.</description>
    </item>
    <item rdf:about="http://www.flaviocdc.net/wiki/java:jtt:nestedmonitorproblem">
        <dc:format>text/html</dc:format>
        <dc:date>2009-10-22T12:05:46+01:00</dc:date>
        <title>Nested Monitor Problem</title>
        <link>http://www.flaviocdc.net/wiki/java:jtt:nestedmonitorproblem</link>
        <description>' Versione da riguardare '

' A cura di Flavio Casadei Della Chiesa '

Il Nested Monitor Problem (NMP) si ha in genere quando un Thread entrando nella coda di wait di un oggetto “mette a dormire con se” il lock dell'unico oggetto che può “risvegliare” tale Thread tramite una notify*().</description>
    </item>
    <item rdf:about="http://www.flaviocdc.net/wiki/java:jtt:putifabsent">
        <dc:format>text/html</dc:format>
        <dc:date>2008-12-14T19:37:54+01:00</dc:date>
        <title>Put if absent, variante del CheckThenAct</title>
        <link>http://www.flaviocdc.net/wiki/java:jtt:putifabsent</link>
        <description>Put if absent, variante del CheckThenAct


A cura di Flavio Casadei Della Chiesa

In questo schema si provvede ed inserire un elemento (di solito) in una collezione solo se questa già non lo contiene.



// schema generico di put-if-absent
private HashMap&lt;K,V&gt; hm .....
    public void putIfAbsent(K k , V v) {
        if (!hm.containsKey(k)) {
                hm.put(k,v);
        }
    }</description>
    </item>
    <item rdf:about="http://www.flaviocdc.net/wiki/java:jtt:racecondition">
        <dc:format>text/html</dc:format>
        <dc:date>2008-12-14T19:37:56+01:00</dc:date>
        <title>java:jtt:racecondition</title>
        <link>http://www.flaviocdc.net/wiki/java:jtt:racecondition</link>
        <description>Si definiscono race condition tutte quelle situazioni in cui processi diversi operano su una risorsa comune, ed in cui il risultato viene a dipendere dall'ordine in cui essi effettuano le loro operazioni.
.
Definizione presa da  Guida alla programmazione Linux</description>
    </item>
    <item rdf:about="http://www.flaviocdc.net/wiki/java:jtt:readwritelock">
        <dc:format>text/html</dc:format>
        <dc:date>2008-12-14T19:37:55+01:00</dc:date>
        <title>Read Write Lock</title>
        <link>http://www.flaviocdc.net/wiki/java:jtt:readwritelock</link>
        <description>BOZZA! Sono un meccanismo per una gestione ottimale dell'accesso a risorse condivise basato sul principio che se molte azioni possono avvenire senza problemi in modo concorrente e solo poche in modo esclusivo allora non c'è alcuna necessità di forzare un accersso in mutua esclusione alla risorsa condivisa.</description>
    </item>
    <item rdf:about="http://www.flaviocdc.net/wiki/java:jtt:start">
        <dc:format>text/html</dc:format>
        <dc:date>2008-12-14T19:37:56+01:00</dc:date>
        <title>Programmazione concorrente in java</title>
        <link>http://www.flaviocdc.net/wiki/java:jtt:start</link>
        <description>*  Java e Thread Pagina principale della sezione del sito relativa ai Thread &amp; compagnia bella
		*  Java, Thread e trabocchetti alcuni suggerimenti per un corretto utilizzo di sistemi multithread. Disponibile per il download anche la [versione pdf]
		*  Segnalazione di eccezioni in log4j. Come Thread e pattern possono aiutarci. Versione  [pdf]
		*   Esempio future esempio semplice di come è possibile utilizzare l'interaccia Future di java5</description>
    </item>
    <item rdf:about="http://www.flaviocdc.net/wiki/java:jtt:triadedellamorte">
        <dc:format>text/html</dc:format>
        <dc:date>2008-12-14T21:41:22+01:00</dc:date>
        <title>Triade della morte</title>
        <link>http://www.flaviocdc.net/wiki/java:jtt:triadedellamorte</link>
        <description>Per “Triade della morte” in ambiente multuthread mi riferisco alle tre maggiori cause di problemi derivanti da una scorretta gestione della concorrenza.

La triade è composta da


	*  RaceCondition
	*  Riordino delle istruzioni da partedi JVM, CPU, Memoria, ....
	*  Problemi di visibilità delle modifiche effettuate da un Thread (Quando il Thread B può vedere il valore corretto della variabile X scritta dal Thread A?)</description>
    </item>
    <item rdf:about="http://www.flaviocdc.net/wiki/java:jtt:unsafelazyinstantiation">
        <dc:format>text/html</dc:format>
        <dc:date>2008-12-14T19:37:56+01:00</dc:date>
        <title>Unsafe lazy instantiation</title>
        <link>http://www.flaviocdc.net/wiki/java:jtt:unsafelazyinstantiation</link>
        <description>In questo Antipattern sono presenti vari problemi, il più ovvio è quello alla creazione di finti Singleton. L'accesso non esclusivo alla getInstance() può favorire la creazione di più istanze differenti della risorsa. Altri e più subdoli problemi sono discussi nel Double checked locking idiom</description>
    </item>
    <item rdf:about="http://www.flaviocdc.net/wiki/java:jtt:unsafepublication">
        <dc:format>text/html</dc:format>
        <dc:date>2008-12-14T19:37:57+01:00</dc:date>
        <title>Unsafe Publication</title>
        <link>http://www.flaviocdc.net/wiki/java:jtt:unsafepublication</link>
        <description>Pubblicare un oggetto significa renderlo visibile agli altri; pubblicarlo in modo insicuro spesso vuol dire renderne visibile il reference prima che l'oggetto sia completamente costruito.

La pubblicazione di un oggetto comporta la scrittura di una variabile, il reference, la creazione di un oggetto comporta la scrittuta di altre variabili, lo stato dell'oggetto. Se non si ha la garanzia certa che la creazione dell'oggetto preceda la pubblicazione del reference allora e' possible entrare in poss…</description>
    </item>
</rdf:RDF>
