Il contenuto di questo sito è rilasciato sotto licenza Creative Commons License se non specificato diversamente

Java, Thread e trabocchetti

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.


Purtroppo chi non ha frequentato una facoltà scientifica ad indirizzo informatico e lavora nel campo dell'informatica in genere non ha la più pallida idea di cosa siamo i problemi legati alla programmazione concorrente; peggio ancora non sa neanche che dovrebbe saperli in quanto i Thread (in Java) sono ovunque.

Sto quindi elaborando alcune slide che spero serviranno a dare uno spunto per uno studio più approfondito sulla materia.

Spesso si utilizzano tecniche del tipo CheckThenAct oppure di tipo Put if absent, variante del CheckThenAct non opportunamente sincronizzate e si tende a giustificare la soluzione con un non è mai successo niente! quindi va bene così (una specie di San Tommaso per intenderci). Nelle slide presenterò anche una serie di antipattern della programmazione concorrente, molti presi da casi reali.

Non penso si essere un esperto di Thread, deadlock e di sistemi concorrenti o distribuiti; mi spaventa comunque la devastante ignoranza dei “professionisti” dell'informatica su tali argomenti, ritengo quindi di avere “purtroppo” una preparazione ben superiore alla media.

Tornando alle slide queste sono divise in quattro parti

Prerequisiti

* Architettura di un moderno elaboratore

  • Registri cache e memoria
  • CPU, funzionamento. L'importanza della pipeline

* Sistemi operativi

  • Ruolo del sistema operativo
  • processi
  • Lo scheduler
  • Processi vs Thread

Concetti introduttivi

  • Computazioni asincrone
  • Casi banali di RaceCondition
  • Banale utilizzo della keyword synchronized
  • Registri, Memoria e Cache
  • Ottimizzazione aggressiva delle moderne piattaforme hardware
  • Problemi di visibilità della memoria e di riordino delle istruzioni
  • Keyword volatile
  • Keyword final ed oggetti immutabili
  • Problemi relativi alla costruzione di un oggetto

Problematiche ricorrenti

Nuova API di Java5 e comuni Antipattern

Download

E' stata aggiunta di recente sul sito (ma non sulle dispense) una parte relativa al Nested Monitor Problem

E' disponibile la versione definitiva (a meno di correzioni ortografiche)flaviothread.pdf

 
java/jtt/javathreadtrabocchetti.txt · Ultima modifica: 2009/04/16 12:20 da fcasadei
 
Recent changes RSS feed