Предположим, у меня есть сценарий с несколькими производителями и одним потребителем. Псевдокод для производителя:
product = produce()
wait(empty)
wait(mutex)
array[in] = product
in = (in + 1) % n
signal(mutex)
signal(full)
Псевдокод для потребителя:
wait(full)
product = array[out]
out = (out + 1) % n
signal(empty)
useProduct()
Что произойдет, если я поменяю семафоры в получателе, т.е. сигнал (пустой) до ждать (полный) ?? Я пытался реализовать этот сценарий в java, но не вижу никаких изменений.