Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Владение критической секцией   Найти похожие ветки 

 
AV ©   (2012-02-28 09:51) [0]

Поток П владеет секцией до момента времени В.
Потоки п1, п2, п3 пытаются в нее же войти в моменты времени в1,в2,в3
, где в1 < в2 < в3 < В
Если потоки овладеют секцией в порядке очереди п1, п2, п3, то почему так, а не, ну, скажем, п2, п3, п1?


 
Сергей М. ©   (2012-02-28 10:01) [1]

Что-то неувязка какая-то ..

П не может владеть секцией, пока ее не отпустит какой-то из потоков п1,п2,п3 , завладевший ею ранее, судя по в1 < в2 < в3 < В

> Если потоки овладеют секцией в порядке очереди п1, п2, п3, то почему так

Именно потому что в1 < в2 < в3


 
RWolf ©   (2012-02-28 10:03) [2]


> Если потоки овладеют секцией в порядке очереди п1, п2, п3,
>  то почему так, а не, ну, скажем, п2, п3, п1?

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


 
AV ©   (2012-02-28 10:11) [3]

> Сергей М. ©   (28.02.12 10:01) [1]
не,
> Поток П УЖЕ владеет секцией до момента времени В.


> Именно потому что в1 < в2 < в3

т.е. он где то завку что ли устанавливает? т.е. кто ранее заявил, тот и первее будет?


 
AV ©   (2012-02-28 10:14) [4]


> неасколько я знаю, такое поведение не регламентируется,
> поэтому я бы на него не рассчитывал

вот я и задумался.
По моему тоже. Но это критично. т.е. надо ли предусмотреть вариант, что не важно когда ты подал заявку на владение - получишь тогда, когда ОС будет это угодно.
Или же приоритет есть.


 
Dimka Maslov ©   (2012-02-28 10:46) [5]

Тогда надо уже не с критическими секциями работать, а с семафорами или событиями. Скажем, есть управляющий поток, рабочие потоки, для которых есть события возобновления работы, и общее для всех событие прекращения работы. Подойдя к "критической секции" рабочий поток информирует о начале ожидания управляющий и начинает ждать своего события. Управляющий поток, следит за очередью, выставляет соотв. событие и ждёт события завершения рабочего потока. Дождавшись его снова лезет в очередь и поднимает очередной событие. Как-то так надо в моём понимании поступать, если очерёдность важна.


 
AV ©   (2012-02-28 11:02) [6]


> Dimka Maslov ©   (28.02.12 10:46) [5]

ну да.
Но если гарантируется
> > Именно потому что в1 < в2 < в3
то зачем..

+ мне пока легче на независимость порядка владения переписать :)


 
AV ©   (2012-02-28 11:04) [7]

по экспериментам, пока получается 1,2,3 или 1,2 или 1,3 или 2,3
, короче, по очереди пока все.


 
Eraser ©   (2012-02-28 11:13) [8]

> [0] AV ©   (28.02.12 09:51)

читай MSDN там все написано. от ОС еще зависит.


 
AV ©   (2012-02-28 11:27) [9]

да.

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.

но спросить же, привычнее :)
к тому же ,комьюнити поддерживается, так сказать :))

Всем спасибо!



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

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.341 c
15-1347627388
Roman_man
2012-09-14 16:56
2013.03.22
Could not create output file


15-1343039892
Alimkulov
2012-07-23 14:38
2013.03.22
Красивый компонент


2-1348041793
TheEd
2012-09-19 12:03
2013.03.22
Вывод картинки с прозрачным цветом - сдела криво, как правильнее?


2-1332165801
Валера
2012-03-19 18:03
2013.03.22
Не компилируется проект с компонентом RS232


2-1337875870
Den
2012-05-24 20:11
2013.03.22
SetCursorPos не перерисовывает курсор?