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

Вниз

Критическая секция для нескольких нитей.   Найти похожие ветки 

 
iZEN   (2003-06-03 09:42) [0]

В VCL есть сласс SyncObjs.TCriticalSection. Есть ли какие-либо ограничения на количество ожидающих нитей, когда одна нить уже заняла критическую секцию? (Скажем: можно ли больше двух ожидающих нитей, и какая из ожидающих нитей в этом случае получит доступ к критической секции после её освобождения?)
Спасибо.


 
Кулюкин Олег   (2003-06-03 09:47) [1]

Больше двух - можно, однозначно.
У меня 100 потоков было и все нормально жило.

А первой получит доступ тот поток, который первым позвал TCriticalSection.Enter.


 
Digitman   (2003-06-03 10:12) [2]

1. ограничений никаких нет - внутрисист.реализация крит.секции не ведет никаких счетчиков

2. зависит от многих факторов (приоритет потока/процесса - в первую очередь), очередность постановки запроса на захват крит.секции далеко не всегда соответствует очередности собственно захвата

собственно, ключ.момент в реализации запроса на захват секции - инструкция CMPXCHG




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

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

Наверх




Память: 0.44 MB
Время: 0.005 c
7-50529
Jorassic_f
2003-04-10 12:41
2003.06.16
насильный скролинг или Message при скролинге


14-50522
crash
2003-06-01 00:54
2003.06.16
mail-адрес borland a


8-50405
beginer85
2003-02-04 22:55
2003.06.16
как определить битрейт и длину МП3 файла?


14-50500
SPeller
2003-05-30 15:10
2003.06.16
Matrix Reload


4-50553
Xoy
2003-04-16 23:43
2003.06.16
как кпредилить раскладку





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