crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Мьютексы, Для того, чтобы вспомнить и улучшить знания
AD
  опции профиля:
сообщение 18.11.2011, 8:30
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Хотел бы задать вопрос для того, чтобы вспомнить позабытые со времен университета вещи. Чем плохи мьютексы? Какие есть альтернативы мьютексам? Хотелось бы вкратце вспомнить! За ссылки на какие-то краткие описания буду благодарен, а вот на толстые учебники, спасибо, но не надо. Просто хочется освежить знания.

Сообщение отредактировал AD - 18.11.2011, 8:30
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 18.11.2011, 9:36
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


вообще, если программист так уж боится собственного кода, то есть более "безопасные" реализации.
в бусте, например, есть разные вариации на базе мьютексов: boost::mutex::scoped_lock, timed_lock и т.д. это просто концепции использования мьютексов:

Lockable Concept
TimedLockable Concept
SharedLockable Concept
UpgradeLockable Concept
http://www.boost.org/doc/libs/1_47_0/doc/h...ronization.html

кроме того, есть семафоры, барьеры, условные переменные. да много всяких реализаций. но большинство из них базируется на системных средствах: мьютексах и семафорах.

примерно те же концепции используются в других библиотеках.

Цитата(AD @ 18.11.2011, 12:21) *
Причем здесь системное или нет? Извини, но я ведь задал конкретный вопрос, относящийся есть ли альтернативы или нет? Судя по твоим постам, альтернативы нет?

не во всех системах. скажем так.
это НЕ софтовая фича. это системная функция. вопрос лишь в том, поддерживает система ту или иную схему синхронизации или нет.
как я уже написала, большинство систем поддерживают мьютексы. остальное чаще всего нагорожено поверх них, с помощью софта.
в ядре линюкса есть семафоры и спинлоки (мьютекс - частный случай семафора):
http://www.ibm.com/developerworks/linux/li...tion/index.html
в венде есть мьютексы, спинлоки и куча фич у ядра, для драйверов:
http://msdn.microsoft.com/en-us/windows/hardware/gg487425
в других системах что-то похожее.
POSIX декларирует мьютексы и семафоры:
http://www.yolinux.com/TUTORIALS/LinuxTuto...sixThreads.html
но не факт, что всякие дополнительные фичи реализованы в каждой системе.

ты всегда можешь взять документацию на API целевой системы и посмотреть, что там предлагается для работы с синхронизацией. но для кроссплатформы это либо какая-то библиотечная обёртка (тот же буст, или Qt, или порты pthread), либо куча #ifdef'ов и очень некрасивый и сложно поддерживаемый код.

Сообщение отредактировал Iron Bug - 18.11.2011, 9:40
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- AD   Мьютексы   18.11.2011, 8:30
- - Iron Bug   а почему сразу плохи? мьютекс - просто одно из сре...   18.11.2011, 8:38
|- - AD   Цитата(Iron Bug @ 18.11.2011, 9:38) а поч...   18.11.2011, 8:43
- - Iron Bug   глупости. конечно, программисту никто не запрещает...   18.11.2011, 9:12
|- - AD   Цитата(Iron Bug @ 18.11.2011, 10:12) глуп...   18.11.2011, 9:21
- - Iron Bug   вообще, если программист так уж боится собственног...   18.11.2011, 9:36
- - BRE   Цитата(AD @ 18.11.2011, 9:30) Какие есть ...   18.11.2011, 10:25
- - Iron Bug   Цитата(BRE @ 18.11.2011, 13:25) как полну...   18.11.2011, 10:32
|- - BRE   Цитата(Iron Bug @ 18.11.2011, 11:32) Цита...   18.11.2011, 10:38
- - Iron Bug   Цитата(BRE @ 18.11.2011, 13:38) Я бы их н...   18.11.2011, 10:45
|- - BRE   Цитата(Iron Bug @ 18.11.2011, 11:45) прос...   18.11.2011, 10:56
|- - Iron Bug   Цитата(BRE @ 18.11.2011, 13:56) Цитата(Ir...   18.11.2011, 11:23
|- - BRE   Цитата(Iron Bug @ 18.11.2011, 12:23) посл...   18.11.2011, 11:55
- - Iron Bug   атомарность - не обращение к железу. вообще, ассем...   18.11.2011, 12:16
|- - BRE   Цитата(Iron Bug @ 18.11.2011, 13:16) атом...   18.11.2011, 12:38
- - Iron Bug   Цитата(BRE @ 18.11.2011, 15:38) Это ты на...   18.11.2011, 12:57
|- - BRE   Цитата(Iron Bug @ 18.11.2011, 13:57) ыхх....   18.11.2011, 13:21
- - Iron Bug   Цитата(BRE @ 18.11.2011, 16:21) загрузить...   18.11.2011, 13:26
|- - BRE   Цитата(Iron Bug @ 18.11.2011, 14:26) Цита...   18.11.2011, 13:40
- - Iron Bug   Цитата(BRE @ 18.11.2011, 16:40) О чем спо...   18.11.2011, 14:00


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2024, 7:17