API пула потоков
Интерфейс программирования приложений пула потоков (API) использует объектную структуру. Каждая из следующих объектов представлена структурой данных в пользовательском режиме:
- Объект пула — это набор рабочих потоков, которые можно использовать для выполнения работы. Каждый процесс может создавать несколько изолированных пулов с разными характеристиками при необходимости. Для каждого процесса также существует пул по умолчанию.
- Группа очистки связана с набором объектов обратного вызова. Функции существуют для ожидания и освобождения всех объектов, являющихся членами каждой группы очистки. Это освобождает приложение от отслеживания всех созданных объектов.
- Рабочий объект назначается пулу и при необходимости группе очистки. Его можно опубликовать, что приводит к выполнению обратного вызова рабочего потока из пула. Рабочий объект может содержать несколько невыполненных записей; каждый создает обратный вызов. Операция после операции не может завершиться ошибкой из-за нехватки ресурсов.
- Объект таймера управляет планированием обратных вызовов. Каждый раз, когда истекает срок действия таймера, обратный вызов отправляется в свой рабочий пул. Установка таймера не может завершиться ошибкой из-за нехватки ресурсов.
- Объект ожидания вызывает ожидание потока официанта в дескрипторе ожидания. После завершения ожидания или истечения срока ожидания поток официанта отправляет обратный вызов объектов ожидания в рабочий пул ожидания. Установка ожидания не может завершиться ошибкой из-за нехватки ресурсов.
- Объект ввода-вывода связывает дескриптор файла с портом завершения ввода-вывода для пула потоков. После завершения асинхронной операции ввода-вывода рабочий поток выбирает состояние операции и вызывает обратный вызов объекта ввода-вывода.
В следующей таблице описываются функции исходных и текущих API пула потоков.
Связанные разделы