Semáforo
Em ciência da computação, um semáforo é uma variável que controla o acesso a um ou mais recursos. Ele é uma ferramenta que os desenvolvedores usam para garantir que as funções acessem apenas dados válidos e sejam executadas no momento certo. Um semáforo pode evitar um deadlock ou uma condição de corrida ao impedir o acesso a um recurso quando ele não está disponível.
Há dois tipos principais de semáforos na programação de computadores: binários e de contagem.
Semáforos binários
Um semáforo binário é uma variável booleana que pode ter apenas dois valores possíveis (0 ou 1). Ele costuma ser usado como um bloqueio para restringir o acesso a uma função ou recurso. Por exemplo, o semáforo A controla a função getData(). Se A = 0, getData() não será executada. Se A = 1, getData() será executada. Um semáforo binário também é considerado um sinalizador ou um interruptor que está ligado ou desligado.
Semáforos de contagem
Um semáforo de contagem pode ser qualquer número inteiro não negativo, também conhecido como número natural. Seu valor pode aumentar ou diminuir com base nos resultados de uma ou mais funções. Por exemplo, um semáforo de contagem pode acompanhar o número de recursos disponíveis em um conjunto de recursos. Se o semáforo for decrementado mais vezes do que for incrementado, ele acabará chegando a 0. Um valor zero indica que não há mais recursos disponíveis.
NOTE: Um "semáforo" no mundo real é uma bandeira ou outro objeto usado para enviar sinais à distância. Por exemplo, uma pessoa pode erguer uma haste em um cais para sinalizar ao capitão de uma balsa que gostaria de embarcar.
Teste seus conhecimentos