Semaforo
In informatica, un semaforo è una variabile che controlla l'accesso a una o più risorse. È uno strumento che gli sviluppatori usano per assicurarsi che le funzioni accedano solo a dati validi e vengano eseguite al momento giusto. Un semaforo può impedire un deadlock o una condizione di gara negando l'accesso a una risorsa quando non è disponibile.
Esistono due tipi principali di semafori nella programmazione: binari e di conteggio.
Semafori binari
Un semaforo binario è una variabile booleana che può avere solo due valori possibili (0 o 1). Viene spesso usato come blocco per limitare l'accesso a una funzione o a una risorsa. Per esempio, il semaforo A controlla la funzione getData(). Se A = 0, getData() non verrà eseguita. Se A = 1, getData() verrà eseguita. Un semaforo binario è anche considerato un flag o un interruttore che può essere acceso o spento.
Semafori di conteggio
Un semaforo di conteggio può essere un qualsiasi numero intero non negativo, noto anche come numero naturale. Il suo valore può aumentare o diminuire in base ai risultati di una o più funzioni. Per esempio, un semaforo di conteggio può tenere traccia del numero di risorse disponibili in un pool di risorse. Se il semaforo diminuisce più volte di quante aumenti, alla fine raggiungerà 0. Un valore pari a zero indica che non sono rimaste altre risorse.
NOTE: Un "semaforo" nel mondo reale è una bandiera o un altro oggetto usato per segnalare a distanza. Per esempio, una persona può sollevare un'asta da un molo per segnalare al capitano di un traghetto che desidera salire a bordo.
Metti alla prova le tue conoscenze