Sviluppare applicazioni che leggono, scrivono, interrogano e modificano un database in modo concorrente è enormemente più facile che scrivere applicazioni multi-threading eppure le similitudini tra questo tipo di applicazioni sono più delle differenze
I libri, gli articoli e gli esempi di codice reperibili si focalizzano sui modi di implementare le primitive di locking e sincronizzazione tra hw, sistema operativo, framework e linguaggio, sulla correttezza di un meccanismo di locking o su come scrivere correttamente un algoritmo concorrente.
In questa serie di post invece ho raccolto un repertorio di idee e riferimenti a beneficio della fantasia di chi progetta applicazioni multi-threading più semplici da capire ed evolvere
a cominciare dalle 2 metafore del modello a sincronizzazione e quello a competizione
per proseguire con i pattern comuni a entrambi i modelli per rendere evidenti i thread della applicazione e per ridurre la superfice di conflitto e di sincronizzazione
insieme ai pattern di prevenzione e gestione del deadlock nel modello a competizione e ai pattern di sincronizzazione nel modello a sincronizzazione appunto
Tags : Progettazione Software |