Questa tecnica sfrutta un concetto abbastanza semplice: processi multipli possono essere eseguiti senza attendere che l'elaborazione degli altri processi sia ultimata. Il concurrent programming è diverso dal calcolo sequenziale e da quello parallelo, infatti nel primo caso i calcoli vengono effettuati uno dopo l'altro, mentre nel secondo vengono eseguiti simultaneamente. Le applicazioni più comuni del concurrent programming possono essere trovate all'interno di piattaforme che implementano sistemi di threading e di pre-emptive multitasking.

Facebook è molto interessata al concurrent programming e, per aiutare i developer a padroneggiare questa tecnica di programmazione, ha creato un nuovo race detector chiamato RacerD. Si tratta di un progetto completamente open source, dunque chiunque sia competente in materia può contribuire allo sviluppo di questo tool.

RacerD è in sostanza un debugger tool che analizza il codice e i possibili risultati di un programma in modo molto più rapido di quanto possa fare un essere umano, andando a ridurre notevolmente il tempo di debug. Lo scopo primario di RacerD è di trovare i data races all'interno del codice Java.

Ovviamente Facebook ammette che è impossibile eseguire un test perfetto al 100%, sarebbe necessario infatti far eseguire troppe analisi dei risultati del codice e i tempi andrebbero a dilatarsi eccessivamente. Dunque, per ovviare a questi problemi, RacerD sfrutta la teoria della Concurrent Separation Logic, che consente al tool di scalare il concurrent checking in un tempo ragionevole per lo sviluppatore.

Via RacerD

CommentaDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *