Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
#1

Реализация семафоров - C++

07.05.2013, 11:25. Просмотров 827. Ответов 3
Метки нет (Все метки)

Возможно ли реализовать семафоры вручную или же для этого нужна обязательная поддержка процессора?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2013, 11:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализация семафоров (C++):

Реализация 2х потоков, работа с буфером, механизм семафоров - C++
Год не было С++, а теперь по смежному предмету задали вот такое : Написать программу, содержащую два потока. Первый поток генерирует...

Взаимная блокировка приложений с использованием семафоров - C++
Доброго времени суток всем! Имеется такое задание: Искусственно создать взаимную блокировку потоков с использованием 2 объектов типа...

Реализация - C++
Кто может помочь с одним моментом в курсовике , курсовик сделан почти весь, но там буквально 5-7 строчек кода нужно чтобы всё заработало. ...

реализация цикла for - C++
Здравствуйте, как посчитать сумму чисел в цикле for от числа А до B... никак не могу понять как это реализовать... И еще один вопрос,...

Реализация стека - C++
Всем доброго времени суток! Нашел в на просторах интернета исходник реализации стека. Но не совсем понятен код. Что бы понять - я...

Реализация is_swappable - C++
Вот решил запилить трейт is_swappable(который есть в 17 стандарте)...правильна ли моя реализация и все ли сделано по "фен-шую" ...

3
Убежденный
Ушел с форума
Эксперт С++
15702 / 7212 / 1139
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
07.05.2013, 14:07 #2
Скорее, поддержка со стороны операционной системы.
Например, должна быть функция пассивного ожидания (типа WaitForSingleObject).
Без нее написание семафора представляется затруднительным.
1
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
07.05.2013, 14:37  [ТС] #3
Убежденный, затруднительным или невозможным?
0
Убежденный
Ушел с форума
Эксперт С++
15702 / 7212 / 1139
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
07.05.2013, 15:07 #4
Давайте определим, что такое семафор.
Пускай это будет объект синхронизации, который ограничивает количество потоков,
которые одновременно могут находиться в охраняемой секции. Такой объект, вероятно,
можно реализовать только на interlocked-функциях и активных циклах (spinlock), без
использования wait-функций, вот только его эффективность лично у меня вызывает
большие сомнения, так как ожидающие своей очереди потоки будут с сумасшедшей
скоростью крутиться в пустых циклах, отнимая ресурсы процессора. На одноядерных
системах это вообще будет жуть.

Хотя такой подход тоже имеет свое право на жизнь, при условии, что среднее время
захвата охраняемой секции очень невелико. В общем, реализовать-то можно, весь
вопрос в практической целесообразности.
0
07.05.2013, 15:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2013, 15:07
Привет! Вот еще темы с ответами:

Реализация Singleton - C++
Приветствую. Пытался реализовать паттерн проектирования Singleton для лога след. образом: class Logger { public: void...

Реализация деревьев - C++
Я вот сделал простое дерево (максимально дочерних узлов в корне - 3). Теперь нужно доработать, чтобы были списки сыновей. Помогите...

Реализация списка - C++
Подскажите пожалуйста, пробую реализовать двусвязный шаблонный список, или если попытаться создать список и воспользоваться методом класса...

Своя реализация new - C++
Приведите пожалуйста пример своей реализации operator new и его последующее применение в виде работающей программы, просто хотелось бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru