Под этим я подразумеваю, допустимо ли добавлять или вычитать из семафоров?У меня есть следующий пример:
semaphore secureTarget = 7;
semaphore allClearAlert = 0;
semaphore bellAlert = 0;
Archer:
start();
wait(secureTarget);
wait(allClearAlert);
fireAtTarget();
signal(secureTarget);
wait(secureTarget - 7);
signal(bellAlert);
end();
Boy:
start();
signal(allClearAlert);
wait(bellAlert);
end();
Это кажется приемлемым?Если это поможет, то первый вопрос, на который я пытаюсь ответить:
У клуба стрельбы из лука есть семь целей.Лучники в клубе должны соревноваться, чтобы обеспечить цель.Как только лучник закрепляет свою цель, она должна подождать, пока не прозвучит все чистое, прежде чем она сможет выстрелить.Как только лучник заканчивает стрелять, она покидает свою цель.Последний лучник заканчивает звучать звонком, который означает, что у всех есть готовый звонок.Только тогда для маленького мальчика, который собирает стрелы, будет безопасно выходить вперед.Когда все стрелки собраны, мальчик выходит из стрельбы и издает лучникам ясный звук.