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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.066 c
15-1353054590
TStas
2012-11-16 12:29
2013.03.22
КАк устроена флешка? Из любопытства


15-1347627388
Roman_man
2012-09-14 16:56
2013.03.22
Could not create output file


15-1342284725
ПЛОВ
2012-07-14 20:52
2013.03.22
Некорректная работа StringReplace, или я туплю?


15-1347612790
LDV
2012-09-14 12:53
2013.03.22
Управление флагами в InnoSetup


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский