Archivio Tag: C++0X

nov 25

le Condition, implementazione delle code di attesa. il problema del barbiere addormentato (C++0x – C++11)

Le Condition Le Condition sono un meccanismo di sincronizzazione che permette ai thread di sospendersi in attesa che avvenga un evento e di essere risvegliati quando l’evento accade, permettono quindi di creare delle code di attesa. Nelle STL le condition sono oggetti della classe std::condition_variable , i metodi fondamentali per usarle sono tre: wait() permette …

Continua a leggere »

Share Button

nov 09

Uso avanzato dei Mutex, i 5 Filosofi (C++0x – C++11)

Illustrazione originale dal testo di Dijkstra

Nell’articolo precedente ho parlato del mutex e del suo uso semplice con la lock_guard. in questo tratterò gli altri tipi di guard e l’uso avanzato dei mutex unique_lock Con unique_lock un mutex può fare molto di più di quello che permette la lock_guard : Si può cercare di prenotarlo in maniera non bloccante ( se …

Continua a leggere »

Share Button

ott 20

Sincronizzazione dei Thread e gestione delle risorse con i Mutex ( C++0X – C++11)

L’accesso concorrente ai dati o alle risorse può provocare incoerenze nei dati o situazioni di deadlock nel caso di risorse che prevedono accesso esclusivo, in questo post cercherò di analizzare gli strumenti che C++0X offre per la sincronizzazione. in particolare i Mutex

Share Button

ott 11

Il C++ e il Multithreading (C++0X – C++11)

Un’altra funzionalità molto interessante introdotta nel C++0X oltre sono le lambda descritte nell’articolo precedente è il supporto nativo al multithreading.

Esistevano già librerie che si occupavano di multithreading in cpp ma adesso è integrato nel linguaggio…

Share Button

mar 24

il C++ e le lambda ( C++0X – C++11)

Kiss

Un interessante funzione introdotta nello standard C++0X sono le lambda Le funzioni lambda sono tipiche dei linguaggi che applicano il paradigma della programmazione funzionale ( completamente o in maniera ibrida) e permettono di trattare le funzioni come se fossero oggetti, potendole quindi definire in qualunque punto del codice e assegnare a una variabile. Vediamo un esempio …

Continua a leggere »

Share Button

feb 24

Il C++ non è ancora morto ( C++11 )

Uno dei linguaggi che ho visto più maltrattare all’Università e di conseguenza poi da molti (sedicenti e/o futuri) ingegneri del software che hanno fatto il grave errore di accettare acriticamente le illazioni dei professori è il C++ (un mio professore ne aveva quasi terrore… ) Michele Sciabarrà anni fa scrisse in un suo post veramente geniale: C++ Livello …

Continua a leggere »

Share Button