Безопасная отмена выполнения потоков
Безопасная отмена выполнения потоков
Обсуждение предыдущего примера продемонстрировало, как безопасно отменить выполнение целевого потока, который использует состояния дежурного ожидания. Несмотря на использование АРС, такую отмену выполнения иногда называют синхронной отменой (synchronous cancellation), поскольку отмена выполнения, которую инициировал вызов функции QueueUserAPC главным потоком, сможет осуществиться лишь тогда, когда целевой поток достигнет безопасного состояния дежурного ожидания.
Синхронная отмена выполнения требует участия в этом целевого потока, которая время от времени должна предоставлять возможность прекратить ее выполнение. Естественный способ вхождения в состояние дежурного ожидания предоставляют функции ожидания событий, поскольку в процессе прекращения работы системы объект события может не перейти вновь в сигнальное состояние. Ожидание мьютексов также можно выполнять в дежурном режиме, чтобы учесть те случаи, когда поток ожидает ресурса, который, возможно, не будет вновь доступным. Этот метод, например, может использоваться главным потоком для разрушения взаимной блокировки потоков.
Асинхронная отмена выполнения потоков (asynchronous thread cancellation) может применяться в тех случаях, когда сигнал должен посылаться потоку, который выполняет интенсивные вычисления и находится в состоянии ожидания ввода/вывода или событий исключительно редко, если это вообще происходит. Возможность асинхронной отмены выполнения потоков в Windows отсутствует, хотя и существуют методики, использующие зависящий от типа процессора код, которые позволяют прерывать выполнение определенного потока.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Приоритеты процессов и потоков и планирование выполнения
Приоритеты процессов и потоков и планирование выполнения Ядро Windows всегда запускает тот из потоков, готовых к выполнению, который обладает наивысшим приоритетом. Поток не является готовым к выполнению, если он находится в состоянии ожидания, приостановлен или
Стеки потоков и допустимые количества потоков
Стеки потоков и допустимые количества потоков Следует сделать еще два предостережения. Во-первых, подумайте о размере стека, который по умолчанию составляет 1 Мбайт. В большинстве случаев этого будет вполне достаточно, но если существуют какие-либо сомнения на сей счет,
Отмена выполнения операций перекрывающегося ввода/вывода
Отмена выполнения операций перекрывающегося ввода/вывода Булевская функция CancelIO позволяет отменить выполнение незавершенных операций перекрывающегося ввода/вывода, связанных с указанным дескриптором (у этой функции имеется всего лишь один параметр). Отменяется
13.2.3. Отмена отображения областей
13.2.3. Отмена отображения областей После окончания отображения в памяти процесс может отменить отображение памяти с помощью munmap(). Это приводит к тому, что последующие доступы к этому адресу будут генерировать SIGSEGV (если только память не будет перераспределена) и сохраняет
Глава 7 Безопасная работа в Linux
Глава 7 Безопасная работа в Linux В этой главе мы в концептуальном плане, особо не вдаваясь в подробности, рассмотрим вопросы увеличения безопасности операционной системы Linux. Подробности вы всегда найдете в соответствующей литературе и главах, описывающих конкретное
Безопасная электронная почта: шифруем сообщения
Безопасная электронная почта: шифруем сообщения Вы, наверное, заметили, что очень часто при переходе на какой-либо сайт, где требуется регистрация и введение личных данных, в строке Адрес привычный http:// меняется на https:// и в нижней части окна Internet Explorer появляется значок в
Отмена объектной привязки
Отмена объектной привязки Snap to None – режим отмены всех текущих и разовых режимов объектной
8.5. Отмена выполнения потоков
8.5. Отмена выполнения потоков Обсуждая листинг 8.4, мы обратили внимание на наличие проблемы, возникающей при отмене выполнения потока, заблокированного вызовом pthread_cond_wait. Выполнение потока может быть отменено в том случае, если какой-нибудь другой поток вызовет функцию
Отмена действия
Отмена действия Если вы выполнили ненужное или неправильное действие, например случайно удалили объект, то можете отменить ошибочное действие. Для этого предназначена кнопка Undo (Возврат) на главной панели инструментов. Каждый щелчок на ней позволяет последовательно
4.2. Отмена потока
4.2. Отмена потока Обычно поток завершается при выходе из потоковой функции или вследствие вызова функции pthread_exit(). Но существует возможность запросить из одного потока уничтожение другого. Это называется отменой, или принудительным завершением, потока.Чтобы отменить
Отмена полномочий
Отмена полномочий Оператор REVOKE требуется для удаления полномочий, назначенных операторами GRANT. Согласно стандарту, REVOKE должен каскадом отменить все привилегии, полученные всеми пользователями как результат WITH GRANT OPTION от данного пользователя. Однако вам не следует на это
25.1. Безопасная работа в Ubuntu
25.1. Безопасная работа в Ubuntu Вспомните главу 2, когда мы очень легко получили права root, используя загрузочный LiveCD. Точно так же доступ к вашей системе может получить и злоумышленник. Алгоритм прост: загружается с LiveCD, получает права root, делает все, что хочет, с файлами на
6.2. Безопасная архитектура – это фундамент
6.2. Безопасная архитектура – это фундамент Итак, помимо централизованной политики безопасности, без которой де факто невозможно построение безопасной сети в принципе, особое внимание следует обратить на следующее моменты.? Использование безопасных протоколов обмена
Промзона: Безопасная вилка для розеток Николай Маслухин
Промзона: Безопасная вилка для розеток Николай Маслухин ОпубликованоНиколай Маслухин Практически в любом мебельном магазине можно купить блокираторы дверей и ящиков, насадки на острые предметы, заглушки на электрические розетки и тому подобные