Рефераты | Рефераты по информатике, программированию | Эффективная многопоточность
Эффективная многопоточность
Категория реферата: Рефераты по информатике, программированию
Теги реферата: аристотель реферат, реферати українською
Добавил(а) на сайт: Bonch-Bruevich.
Запрос помещается в поток, который не завершается после обработки запроса, поэтому он может сохранять
свое состояние, например в TLS.
WT_EXECUTELONGFUNCTION
0x10
Запрос с данным флагом
всегда помещается в новый поток
Таблица 3. Флаги функции QueueUserWorkItem.
Если вы не выполняете асинхронных запросов
ввода/вывода в функции ThreadProc, не используете TLS (Thread Local Storage)
или функций, которые его используют, а продолжительность выполнения операции
невелика – указывайте флаг WT_EXECUTEDEFAULT.
Предположим, вы начали асинхронную операцию
ввода/вывода в своей функции ThreadProc. Для того чтобы она завершилась, поток
в котором она началась, не должен быть разрушен. Однако флаг WT_EXECUTEDEFAULT
этого не гарантирует. С этим флагом поток может быть удален, даже если у него
имеются незавершенные асинхронные операции. Для того чтобы поток завершался
только после окончания всех начатых асинхронных операций, нужно указать флаг
WT_EXECUTEINIOTHREAD.
При указании флага WT_EXECUTEINPERSISTENTTHREAD пакет
запроса помещается в поток, который никогда не удаляется, так что вы спокойно
можете использовать TLS. Так как поток всего один, не рекомендуется выполнять в
нем продолжительных операций.
И наоборот, если вам нужно каждый раз выполнять длительную
операцию, укажите флаг WT_EXECUTELONGFUNCTION. Для каждой такой операции
создается новый поток, который после ее обработки удаляется.
Характеристика
Значение
Начальное коли-чество
потоков в пуле
0
Когда поток удаляется
Поток не имеет незавершенных
операций ввода/вывода и простаивает некоторое время
Способ ожидания, используемый потоком
Тревожное (alertable)
ожидание
Поток просыпается при
Приходе APC-запроса
Рекомендуем скачать другие рефераты по теме: реферати, инновационная деятельность.