Книга: Системное программирование в среде Windows
Решение проблемы долговременных состояний в многопоточной среде
Решение проблемы долговременных состояний в многопоточной среде
В искомом решении сочетаются несколько компонентов:
• Библиотека DLL, в которой содержатся функции, обеспечивающие отправку и прием сообщений.
• Функция, представляющая точку входа в DLL.
• Локальная область хранения потока (TLS, глава 7). Подключение процесса к библиотеке сопровождается созданием индекса DLL, а отключение — уничтожением. Значение индекса хранится в статическом хранилище, доступ к которому имеют все потоки.
• Структура, в которой хранится буфер и его текущее состояние. Структура распределяется всякий раз, когда к библиотеке подключается новый поток, и его адрес сохраняется в записи TLS для данного потока. При отсоединении потока от библиотеки память, занимаемая его структурой, освобождается.
Таким образом, TLS играет роль статического хранилища, и у каждого потока имеется собственная уникальная копия этого хранилища.
- Проблемы потребителя
- 3.5 Проблемы доступа при использовании нескольких протоколов
- 5.2 Проблемы при резервном копировании
- Решение
- 10.6.1. Обнажение проблемы
- Введение Вторая грамотность и проблемы ее освоения
- Глава 8 Проблемы с «железом» и разгон процессора
- У меня проблемы со здоровьем. Может ли мне помочь Интернет?
- 4.14. Запрет и разрешение хостов
- «Если бы у вас была волшебная палочка, что бы вы сделали для решения проблемы?»
- 7.5.3. Проблемы авторизации
- Решение проблем при работе в Почте Windows