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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.44 MB
Время: 0.005 c
14-50475
Nucl
2003-05-27 10:00
2003.06.16
Большие числа.


1-50365
Clipper
2003-06-04 01:38
2003.06.16
Иконка приложению.


4-50558
Шишкин Илья
2003-04-16 17:20
2003.06.16
функция GetWindow


1-50297
killer
2003-06-04 17:04
2003.06.16
Как в программе выделить и скопировать текст из Label-а?


1-50290
Voyager
2003-06-03 16:36
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский