A seguir, estão algumas soluções de software com bloqueio que podem ser utilizadas:

Primitivas Sleep/Wake Up

Semáforos

Monitores

Problema Produtor/Consumidor

O problema Produtor/Consumidor é um problema clássico de sincronização em sistemas operacionais que pode ser resolvido tanto com semáforos quanto com primitivas Sleep/Wake Up.

O problema consiste em um processo produtor que insere itens em um buffer compartilhado e um processo consumidor que remove itens do buffer. O objetivo é garantir que o produtor não tente inserir itens em um buffer cheio e que o consumidor não tente remover itens de um buffer vazio.

Solução com Primitivas Sleep/Wake Up

Para resolver o problema com primitivas Sleep/Wake Up, pode-se utilizar uma variável de condição para indicar quando o buffer está cheio ou vazio.