Приостановка и возобновление выполнения потока

Приостановка и возобновление выполнения потока

Для каждого потока поддерживается счетчик приостановок (suspend count), и выполнение потока может быть продолжено лишь в том случае, если значение этого счетчика равно 0. Поток может увеличивать или уменьшать значение счетчика приостановок другого потока с помощью функций SuspendThread и Resume-Thread. Вспомните, что поток можно создать в приостановленном состоянии со счетчиком приостановок равным 1. 

DWORD ResumeThread(HANDLE hThread)

DWORD SuspendThread(HANDLE hThread) 

В случае успешного выполнения обе функции возвращают предыдущее значение счетчика приостановок, иначе — 0xFFFFFFFF.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

8.4.2 Состояния Потока

Из книги C++ автора Хилл Мюррей

8.4.2 Состояния Потока Каждый поток (istream или ostream) имеет ассоциированное с ним состояние, и обработка ошибок и нестандартных условий осуществляется с помощью соответствующей установки и проверки этого состояния.Поток может находиться в одном из следующих состояний:enum


6.6 ПРИОСТАНОВКА ВЫПОЛНЕНИЯ

Из книги Архитектура операционной системы UNIX автора Бах Морис Дж

6.6 ПРИОСТАНОВКА ВЫПОЛНЕНИЯ К настоящему моменту мы рассмотрели все функции работы с внутренними структурами процесса, выполняющиеся на нижнем уровне взаимодействия с процессом и обеспечивающие переход в состояние «выполнения в режиме ядра» и выход из этого состояния в


18.6.2 Приостановка и мгновенное восстановление состояния ВМ

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

18.6.2 Приостановка и мгновенное восстановление состояния ВМ В любой момент работы с виртуальной машиной можно приостановить ее работу и сохранить текущее состояние, а впоследствии продолжить работу с точки останова, причем все открытые приложения и документы будут снова


11.10.3 Возобновление

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

11.10.3 Возобновление Клиенты могут продлить аренду адресов посредством быстрого обмена с сервером:? Предварительно сконфигурированный клиент может посылать DHCPREQUEST с указанием в нем своего IP-адреса.? Сервер (или серверы), хранящий конфигурацию клиента, отвечает сообщением


12.1. Создание потока

Из книги C++. Сборник рецептов автора Диггинс Кристофер

12.1. Создание потока ПроблемаТребуется создать поток (thread) для выполнения некоторой задачи, в то время как главный поток продолжает свою работу.РешениеСоздайте объект класса thread и передайте ему функтор, который выполняет данную работу. Создание объекта потока приведет к


Атрибуты потока

Из книги QNX/UNIX [Анатомия параллелизма] автора Цилюрик Олег Иванович

Атрибуты потока В коде реальных приложений очень часто можно видеть простейшую форму вызова, порождающего новый поток, в следующем виде:pthread_create(NULL, NULL, &thread_func, NULL);И для многих целей такого вызова достаточно, так как созданный поток будет обладать свойствами,


Данные потока

Из книги Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform автора Кёртен Роб

Данные потока В реальном коде часто возникает ситуация, когда одновременно исполняются несколько экземпляров потоков, использующих один и тот же код (при создании потоков указывается одна и та же функция потока). При этом некоторые данные (например, статические объекты,


Завершение потока

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

Завершение потока Как и в случае обсуждавшегося ранее завершения процесса, для потоков мы будем отчетливо различать случаи:• «естественного» завершения выполнения потока из кода самого потока;• завершения потока извне, из кода другого потока или по сигналу. Для этого


«Легковесность» потока

Из книги Операционная система UNIX автора Робачевский Андрей М.

«Легковесность» потока Вот теперь, завершив краткий экскурс использования процессов и потоков, можно вернуться к вопросу, который вскользь уже звучал по ходу рассмотрения: почему и в каком смысле потоки часто называют «легкими процессами» (LWP — lightweight process)?Выполним ряд


Запуск потока

Из книги C++ для начинающих автора Липпман Стенли

Запуск потока Теперь, когда мы знаем, как запустить другой процесс, давайте рассмотрим, как осуществить запуск другого потока.Любой поток может создать другой поток в том же самом процессе; на это не налагается никаких ограничений (за исключением объема памяти, конечно!)


4.1. Создание потока

Из книги Идеальный программист. Как стать профессионалом разработки ПО автора Мартин Роберт С.


4.2. Отмена потока

Из книги автора

4.2. Отмена потока Обычно поток завершается при выходе из потоковой функции или вследствие вызова функции pthread_exit(). Но существует возможность запросить из одного потока уничтожение другого. Это называется отменой, или принудительным завершением, потока.Чтобы отменить


Создание потока

Из книги автора

Создание потока Поток создается при первом открытии с помощью системного вызова специального файла устройства, ассоциированного с драйвером STREAMS. Как правило, процесс создает поток в два этапа: сначала создается элементарный поток, состоящий из нужного драйвера и


20.7. Состояния потока

Из книги автора

20.7. Состояния потока Пользователей библиотеки iostream, разумеется, интересует, находится ли поток в ошибочном состоянии. Например, если мы пишемint ival;cin ival;и вводим слово "Borges", то cin переводится в состояние ошибки после неудачной попытки присвоить строковый литерал целому


Зона потока

Из книги автора

Зона потока О сверхпроизводительном состоянии, называемом «потоком» (flow), написано много литературы. Некоторые программисты называют его «зоной». Как бы оно ни называлось, вероятно, вам знакомо это ощущение предельной концентрации сознания, в которое может войти