Progettazione di app. multi-threading: modelli di programmazione

 

Esiste una terza         metafora in base alla quale impostare il modello di programmazione        per la gestione della concorrenza:


  • Il modello a monitor

    lo scopo di questo modello è sollevare il programmatore delle complessità legate alla gestione della concorrenza che invece viene lasciata al compilatore e al sistema che eseguirà il codice.
    2 esempi noti sono il Single Thread Apartment del Visual Basic 6 e le Activity dei componenti COM+.
    Ma anche il Syncronize del Java e il MethodImplOptions.Synchronized di .NET.

 

Il modello a monitor       è adatto ad applicazioni in cui ...       è naturale modellare l'elaborazione con architettura client/server  in cui lo stato condiviso tra i client è raramente mantenuto in in istanze di oggetti condivisi, più spesso è altrove tipo nel database.
Tipicamente c'è un thread per client e le istanze attraversate da più thread distinti sono molto poche.



Compito del programmatore è che l'esecuzione ogni metodo lasci ogni oggetto in uno stato coerente.
Il peso di questa semplificazione è un locking a grana grossa e quindi sono sufficienti poche istanze condivise per avere pochi thread in esecuzione e molti in attesa.

 

 

Tags :   



Print | posted @ Friday, May 9, 2008 11:32 PM

Comments have been closed on this topic.