Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.12.01;
Скачать: [xml.tar.bz2];

Вниз

Один и тот же поток в одну и туже крит.секцию   Найти похожие ветки 

 
O'ShinW ©   (2013-02-20 12:01) [0]

Один и тот же поток может входить многократно в одну и туже крит.секцию, главное, чтобы выходов было столько же. Так?


 
Игорь Шевченко ©   (2013-02-20 12:11) [1]

монетку подбросить пробовал ?


 
DVM ©   (2013-02-20 12:21) [2]


> O"ShinW ©   (20.02.13 12:01) 

http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms682530.aspx


 
O'ShinW ©   (2013-02-20 12:28) [3]

читал. Собственно потому и спрашиваю.
не понимаю, зачем там последнее предложение

When a thread owns 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. To release its ownership, the thread must call LeaveCriticalSection one time for each time that it entered the critical section. There is no guarantee about the order in which waiting threads will acquire ownership of the critical section.

>> монетку подбросить пробовал ?
ценю юмор(, пофиг над кем шутят).
Но тут не понял :)


 
O'ShinW ©   (2013-02-20 12:30) [4]

т.е. так:

......... attempts to enter a critical section without blocking the calling thread.

When a thread owns 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. To release its ownership, the thread must call LeaveCriticalSection one time for each time that it entered the critical section. There is no guarantee about the order in which waiting threads will acquire ownership of the critical section.

A thread uses the InitializeCriticalSectionAndSpinCount or SetCriticalSectionSpinCount function to specify a spin .........

вроде как относится к одному абзацу, но при чем тут потоКИ
Тут же про потоК говорится?


 
Dimka Maslov ©   (2013-02-20 12:47) [5]

С статье говорится о том, что для выхода из критической секции требуется столько раз выйти из неё, сколько раз войдено было. А вот потом уже нет никакой возможности определить какой из ожидающих потоков получит управление. Всё ясно и логично.


 
O'ShinW ©   (2013-02-20 12:52) [6]

Ну, так и понял. Уточнить.
Спасибо.


 
Ega23 ©   (2013-02-20 12:55) [7]

А зачем 2 раза в одну и ту же входить?


 
Dimka Maslov ©   (2013-02-20 13:25) [8]


> А зачем 2 раза в одну и ту же входить?


Потому-что критическая секция это не река, в неё можно войти дважды.


 
O'ShinW ©   (2013-02-20 13:46) [9]

Список,
по переполнению надо удалить что-нибудь ненужное

Добавляем, входя
Детектируем переполнение, высчитываем ненужное
Вызываем удаление, которое вторично входит CS
выходим из удаления
выходим из добавления


 
Inovet ©   (2013-02-20 15:14) [10]

> [9] O"ShinW ©   (20.02.13 13:46)

Добавление
входим добавляем выходим
детектируем
вызываем удаление

Удаление
входим удаляем выходим


 
RWolf ©   (2013-02-20 15:23) [11]

> выходим
> детектируем

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


 
O'ShinW ©   (2013-02-20 15:37) [12]

да, именно

> > выходим
> > детектируем
> и тут секцию перехватывает другой поток


Поэтому удаляем из добавления, не выходя.
Удаление, в свою очередь, тоже защищено, потому что можно удалять и извне.
т.е. второй раз войти придется. (не приписывать же методом copy|paste Удаление в Добавление)

Процедура расчета мусора, тоже возможно будет дергать методы,
входящие в крит.секцию.

Возник вопрос о возможной глубине вложенности. Почитал. Засомневался. Спросил. :)
Специально так, чтобы облегчить труд отвечающего:
да/нет


 
Inovet ©   (2013-02-20 15:38) [13]

> [11] RWolf ©   (20.02.13 15:23)
> и тут секцию перехватывает другой поток

Согласен, туплю.


 
Игорь Шевченко ©   (2013-02-20 15:58) [14]


> да/нет


монетка решит твои сомнения



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2013.12.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.002 c
15-1371155402
Юрий
2013-06-14 00:30
2013.12.01
С днем рождения ! 14 июня 2013 пятница


15-1370928230
MBo
2013-06-11 09:23
2013.12.01
Я всегда знал ;)


2-1361265627
kelpie1988
2013-02-19 13:20
2013.12.01
Как создать dll c вложенными функциями?


2-1361280669
Михаил
2013-02-19 17:31
2013.12.01
Необязательный var-параметр в процедуре


15-1371052001
О-Сознание
2013-06-12 19:46
2013.12.01
Флаг в LongInt.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский