Clean Code by Robert C. Martin
autore:Robert C. Martin [Martin, Robert C.]
La lingua: ita
Format: epub
editore: Apogeo
pubblicato: 2018-03-28T22:00:00+00:00
Scrivere il codice di chiusura corretto è difficile
Scrivere un sistema che debba rimanere attivo e funzionante per sempre non è la stessa cosa di scrivere qualcosa che funziona per un po’ e poi termina adeguatamente.
Una corretta chiusura può essere difficile da ottenere. Fra i problemi più comuni vi sono i deadlock (vedi “Deadlock”, nell’Appendice A), dove i thread restano bloccati in attesa di un segnale che non arriva mai.
Per esempio, immaginate un sistema con un thread genitore che genera più thread figli e poi attende il loro completamento prima di rilasciare le risorse impegnate e chiudersi. E se uno dei thread generati fosse bloccato in un deadlock? Il genitore attenderà per sempre e il sistema non si chiuderà mai.
O considerate un sistema simile, al quale sia stato chiesto di chiudersi. Il genitore dice a tutti i figli che ha generato di abbandonare le attività e di terminare. Ma cosa accadrebbe se due di questi figli fossero legati in una coppia produttore/consumatore? Supponete che il produttore riceva il segnale dal genitore e si chiuda rapidamente. Il consumatore attenderà invano un messaggio dal produttore e rimarrà bloccato in uno stato in cui non può ricevere il segnale di chiusura. Rimarrà in attesa del produttore e non si chiuderà mai, bloccando nel contempo anche la chiusura del genitore.
Situazioni come questa non sono affatto insolite. Pertanto se dovete scrivere del codice concorrente che preveda una chiusura composta, preparatevi a dedicare del tempo ad assicurarvi che la chiusura possa avvenire correttamente.
SUGGERIMENTO
Iniziate presto a ragionare e anche a lavorare sul codice di chiusura. Vi richiederà più tempo di quanto possiate immaginare. Considerate anche gli algoritmi usati, perché questo compito è probabilmente più difficile del preventivato.
scaricare
Questo sito non memorizza alcun file sul suo server. Abbiamo solo indice e link contenuto fornito da altri siti. Contatta i fornitori di contenuti per rimuovere eventuali contenuti di copyright e inviaci un'email. Cancelleremo immediatamente i collegamenti o il contenuto pertinenti.
Mobile HTML5 by Estelle Weyl(2272)
Hello World by Hannah Fry(2073)
La Sicurezza Informatica. Tra informatica, matematica e diritto (Italian Edition) by Francesca Cirini(2046)
Il Manuale Di Arduino by Maik Schmidt(1851)
Linux server per l'amministratore di rete: per Ubuntu, CentOS e Fedora (Italian Edition) by Silvio Umberto Zanzi(1584)
Nel paese degli algoritmi by Aurélie Jean(1566)
Esercizi Di Stile by Unknown(1432)
Sviluppare in PHP 7: Realizzare applicazioni web e API professionali (Italian Edition) by Enrico Zimuel(1168)
E-LEARNING by E-learning(1164)
PYTHON : Il manuale per imparare a programmare. Contiene esempi di codice ed esercizi pratici. (Italian Edition) by Frost Oscar R(1159)
Automatizzare le cose noiose con Python: Programmazione pratica per principianti assoluti (Italian Edition) by Sweigart Al(1132)
Tutto Mac for dummies: iPhone, iPad, MacBook, iCloud e molto altro by Simone Gambirasio(1123)
Novacene by James Lovelock(1114)
9 algoritmi che hanno cambiato il futuro by MacCormick John(1047)
Amazon by Sconosciuto(1014)
Comprendere gli Algoritmi e i diagrammi di flusso passo-passo: Esempi con ausili grafici e tabellari, esercizi e codifica in linguaggio C (Italian Edition) by Luciano Manelli(1012)
On Writing by Stephen King(1009)
WEB DEVELOPMENT: La guida completa allo sviluppo web lato client. Impara a programmare con esercizi pratici ed esempi di codice. Include HTML, CSS, PHP, PYTHON, MySQL (Italian Edition) by Ferrati Alberto(991)
Programmare con Python. Guida completa by Marco Buttu(975)
