Я реализую решение проблемы потребителей-производителя с помощью семафоров и до сих пор разработал этот код, который реализован производителем и потребителем.Производитель/Потребительское решение
#define N 100
typedef int semaphore;
semaphore mutex = 1;
semaphore empty = N;
semaphore full = 0;
void producer(void)
{
int item;
while (TRUE)
{
produce_item(&item);
down(&empty);
down(&mutex);
enter_item(item);
up(&mutex);
up(&full);
}
}
void consumer(void)
{
int item;
while (TRUE)
{
down(&full);
down(&mutex);
remove_item(&item);
up(&mutex);
up(&empty);
consume_item(item);
}
}
Я изо всех сил думать о том, как реализовать основной, который печатает номер каждый раз, когда элемент производимыми /.
Любая помощь будет оценена
Откажитесь от своего кода – user8
Запустите некоторые потоки производителей (возможно, обоймитесь нажатием кнопки на каком-то указателе/другом и вызове сна), и некоторые потоки потребителей (возможно, обойти очередь поп и printf, полученный указатель/независимо) , –