Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 24.08.2011, 15:38   #1
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Смысл один. У мутанта больше возможностей.
1 м может быть глобальной и доступной в других процессах. Секция тока в своем.
2 м можно захватить одним потоком неск.раз (ессно чтоб освободить нада стокаже раз вызвать release) секция же скорее всего "сломаетса" при двух ентерах или ливах.

понятно что цена за это скорость, мутекс требует обращения к ядру ос а это пассивный irq level
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
За это сообщение mira нажился спасибкой от:
Старый 24.08.2011, 15:57   #2
Заблокирован
 
Регистрация: 25.03.2011
Сообщений: 18
Сказал Спасибо: 5
Имеет 4 спасибок в 3 сообщенях
GoodDrone пока неопределено
По умолчанию

Цитата:
Сообщение от mira Посмотреть сообщение
2 м можно захватить одним потоком неск.раз (ессно чтоб освободить нада стокаже раз вызвать release) секция же скорее всего "сломаетса" при двух ентерах или ливах.
да вы, батенька, фантазёр:

Цитата:
After a thread has ownership of a critical section, it can make additional calls to EnterCriticalSection or TryEnterCriticalSection without blocking its execution. This prevents a thread from deadlocking itself while waiting for a critical section that it already owns. The thread enters the critical section each time EnterCriticalSection and TryEnterCriticalSection succeed. A thread must call LeaveCriticalSection once for each time that it entered the critical section.
GoodDrone вне форума   Ответить с цитированием
Старый 24.08.2011, 17:48   #3
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Цитата:
Сообщение от GoodDrone Посмотреть сообщение
да вы, батенька, фантазёр:
ну.. я написал "скорее всего". непроверял ибо не допускал таково
смысл в том что у нее нет счетчика блокировок.
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
Старый 24.08.2011, 18:01   #4
Заблокирован
 
Регистрация: 25.03.2011
Сообщений: 18
Сказал Спасибо: 5
Имеет 4 спасибок в 3 сообщенях
GoodDrone пока неопределено
По умолчанию

Цитата:
Сообщение от mira Посмотреть сообщение
смысл в том что у нее нет счетчика блокировок.
Есть таймаут, правда глобальный.
GoodDrone вне форума   Ответить с цитированием
Старый 24.08.2011, 18:17   #5
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Цитата:
Сообщение от GoodDrone Посмотреть сообщение
Есть таймаут, правда глобальный.
впервые слышу что у секции есть таймаут.
у мутекса есть задаваемый вручную от 0 до INFINITE
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
Старый 24.08.2011, 19:02   #6
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

mira, у TryEnterCriticalSection можно задать таймаут, после которого если так и не удалось войти в секцию, то TryEnterCriticalSection завершается возвращая соответствующий код результата. Собсно даже не можно а нужно, и так же от 0 до INFINITE
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 24.08.2011, 19:21   #7
Заблокирован
 
Регистрация: 25.03.2011
Сообщений: 18
Сказал Спасибо: 5
Имеет 4 спасибок в 3 сообщенях
GoodDrone пока неопределено
По умолчанию

Цитата:
Сообщение от xkor Посмотреть сообщение
mira, у TryEnterCriticalSection можно задать таймаут...
Где?

Цитата:
Сообщение от mira Посмотреть сообщение
впервые слышу что у секции есть таймаут.
Я нашел только глобальный:

Цитата:
The timeout interval is specified by the following registry value: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\CriticalSectionTimeout.
GoodDrone вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 23:01.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!