Threads e exclusão mútua

Bom dia a todos!

Gostaria de uma ajuda para um trabalho de faculdade, a qual temos que resolver um problema relacionado com Thread e exclusão mútua.Pode ser com C ou Java.
Segue abaixo o enunciado:

Problema:
Escreva um programa na linguagem C ou Java com quatro threads que compartilham um buffer de
10 posições, sendo um produtor e três consumidores. O produtor fica em loop inserindo um número
pequeno (20 ou 30) de elementos no buffer. Os consumidores devem remover elementos do buffer de
forma a garantir a exclusão mútua entre o produtor e os consumidores. Os elementos devem ser
removidos na ordem de inserção, ou seja, os primeiros elementos inseridos devem ser os primeiros a
serem removidos. O programa termina quando o buffer estiver vazio. Os elementos podem ser letras.
A cada tentativa de operação de inserção ou remoção, o programa deverá imprimir uma linha na tela
com a capacidade do buffer, a identidade da thread, o tipo de operação (ins/rem), o valor do item e a
quantidade de elementos produzidos. A saída será algo como:
prod: 0 ins A 1
prod: 1 ins B 2
con3: 2 rem A 2
prod: 1 ins A 3
prod: 2 ins B 4

Obrigado
Claudio

Comece o trabalho e poste as dúvidas.