Форум: "Начинающим";
Текущий архив: 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