Есть ли какое -либо влияние положить семафор внутрь замка вместо его вне его? [закрыто]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли какое -либо влияние положить семафор внутрь замка вместо его вне его? [закрыто]

Сообщение Anonymous »

Я делаю однозначное задание в C#, где есть клиенты и повара. Клиенты размещают заказ, повара принимают его, делают порцию, а затем ложатся спать вечно. Каждая часть, которая производится, помещается в «поднос», и когда поднос заполнен, последний повар для работы на нем выведет его для пикапа, где клиенты его берут и уходят. Полная сумма лотка составляет 3. Мне разрешено защищать методы только с помощью замков или семафоров. Асинкватные структуры, спиннинг и сигнал/монитор не допускаются. Это должно быть справедливым, правильным и безопасным, без условий гонки. Насколько я понимаю, вы хотите потратить как можно меньше времени, как только можете внутри блокировки, и для размещения семафора потребуется больше времени для работы (внутри блокировки), это правда?Console.WriteLine($"-Cook {cookId} is about to pick up an order.");
Program.semaphore1.WaitOne();
lock (Program.orderLock)
{
tempOrder = orderLocation.First();

orderLocation.RemoveFirst();
}
< /code>
И это часть клиента: < /p>
lock (Program.orderLock)
{
orderLocation.AddFirst(order);
}
Program.semaphore1.Release();
< /code>
Это имеет значение, если бы я поместил .release (); Семфор внутри блокировки? Но мне очень любопытно, если он оказывает влияние, или есть какой -то стандарт кода, который говорит, что вы не можете сделать это, потому что ... Я также просто хочу знать, какие правила есть для замков и семафоров при кодировании (делают и не так).

Подробнее здесь: https://stackoverflow.com/questions/796 ... -outside-o
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»