Форум программистов, компьютерный форум CyberForum.ru

Что такое семафоры? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
ht1515
шарпопочитатель
 Аватар для ht1515
58 / 25 / 1
Регистрация: 31.01.2010
Сообщений: 900
29.01.2012, 14:57     Что такое семафоры? #1
сразу хочу показать ссылку http://ru.wikipedia.org/wiki/%D0%A1%...B8%D0%BA%D0%B0)
ниче не ясно...
можете помочь разобраться?
Семафо́р — объект, позволяющий войти в заданный участок кода не более чем n потокам. Определение введено Эдсгером Дейкстрой.
Семафоры используются при передаче данных через разделяемую память.
Во-первых не ясно :
Семафоры используются при передаче данных через разделяемую память
Всмысле разделяемую? Глобальную переменную что ли?
Во-вторых:
объект, позволяющий войти в заданный участок кода не более чем n потокам.
поток входит участок кода? че?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2012, 14:57     Что такое семафоры?
Посмотрите здесь:

что такое Void C++
что такое матрица? C++
что такое полиморфизм C++
C++ Что такое DLL?
C++ Что такое триграф?
Что такое указатели? C++
Что такое треды? C++
Что такое магазин? C++
Что такое int* C++
C++ Что это такое?
Что такое конструктор? C++
C++ Что такое Visual C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KuKu
 Аватар для KuKu
1544 / 1022 / 69
Регистрация: 17.04.2009
Сообщений: 2,954
29.01.2012, 15:07     Что такое семафоры? #2
Цитата Сообщение от ht1515 Посмотреть сообщение
Всмысле разделяемую? Глобальную переменную что ли?
Память доступная для нескольких процессов.
Цитата Сообщение от ht1515 Посмотреть сообщение
поток входит участок кода? че?
Семафор это счетчик. Счетчик может увеличиваться и уменьшаться. Когда значение счетчика == 0, то уменьшать его дальше нельзя и процесс/поток блокируется до тех пор, пока значение счетчика не будет > 0.
ht1515
шарпопочитатель
 Аватар для ht1515
58 / 25 / 1
Регистрация: 31.01.2010
Сообщений: 900
29.01.2012, 15:18  [ТС]     Что такое семафоры? #3
KuKu, а уменьшается под действием чего? То есть от времени зависит или какого-то условия заданного пользователем? Если юзер будет использовать (присваивать ему 0 и 1 ), то получится мьютекс?
KuKu
 Аватар для KuKu
1544 / 1022 / 69
Регистрация: 17.04.2009
Сообщений: 2,954
29.01.2012, 15:22     Что такое семафоры? #4
Сетчик уменьшает sem_wait(), увеличивает - sem_post(). Если счетчик == 0, при вызове sem_wait() идет блокировка.
Цитата Сообщение от ht1515 Посмотреть сообщение
Если юзер будет использовать (присваивать ему 0 и 1 ), то получится мьютекс?
По сути, да. Мьютексы вродь быстрее, но у него возможны только 0 или 1 и работают только в одном процессе у разных потоков. Семафоры же могут принимать любые значения от 0 до 32767 + могут быть видны из разных процессов(этого не делал, но говорят могут).
Yandex
Объявления
29.01.2012, 15:22     Что такое семафоры?
Ответ Создать тему
Опции темы

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