![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Unknown |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 104 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Проблема спящего брадобрея
Действие еще одной классической проблемной ситуации межпроцессного взаимодействия разворачивается в парикмахерской. В парикмахерской есть один брадобрей, его кресло и п стульев для посетителей. Если желающих воспользоваться его услугами нет, брадобрей сидит в своем кресле и спит. Если в парикмахерскую приходит клиент, он должен разбудить брадобрея. Если клиент приходит и видит, что брадобрей занят, он либо садится на стул (если есть место), либо уходит (если места нет). Необходимо запрограммировать брадобрея и посетителей так, чтобы избежать состояния состязания. У этой задачи существует много аналогов в сфере массового обслуживания, например информационная служба, обрабатывающая одновременно ограниченное количество запросов, с компьютеризированной системой ожидания для запросов. Это задание. Возник вопрос не совсем относящийся к теме: есть ли аналог глобальных переменных в С#? т.е. мне нужно, чтобы переменная, обозначающая кол-во посетителей, была доступна во всей программе. В дальнейшем, думаю, вопросы еще возникнут - вот и создал тему. -------------------- go ask Alice
|
![]() ![]() |
hardcase |
![]()
Сообщение
#2
|
![]() code warrior ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: ![]() ![]() ![]() |
Проблема спящего брадобрея... Это задание. Возник вопрос не совсем относящийся к теме: есть ли аналог глобальных переменных в С#? т.е. мне нужно, чтобы переменная, обозначающая кол-во посетителей, была доступна во всей программе. Статическое свойство класса тебе поможет. Код public class Barbery { private static int _client_count = 0; public static int ClientCount { get { return _client_count; } } } Кстати C# имеет собственный механизм синхронизации: Код lock(some_object) { } где some_object - это экземпляр ссылочного типа. Синхронизация основана на механизме монитора (эквивалентно семафору). Сообщение отредактировано: hardcase - 27.04.2008 11:19 -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
![]() ![]() |
![]() |
Текстовая версия | 25.07.2025 17:06 |