Объект - синхронизация - Большая Энциклопедия Нефти и Газа, статья, страница 1
Если существует искусственный интеллект, значит, должна существовать и искусственная тупость. Законы Мерфи (еще...)

Объект - синхронизация

Cтраница 1


Объекты синхронизации ( а также объекты файлов памяти, рассматриваемые далее) совместно используют одинаковые имена. Таким образом, если имя, передаваемое в функции: : create.  [1]

Объектом синхронизации выступают предсказуемые денежные потоки, поддающиеся изменению во времени. В процессе синхронизации денежных потоков во времени используются два основных метода - выравнивание и повышение тесноты корреляционной связи между отдельными видами потоков.  [2]

Одно из преимуществ использования объекта синхронизации состоит в том, что пока поток ждет освобождения объекта, он блокируется. При блокировании потока операционная система не выполняет его, следовательно, ему не нужно занимать процессорное время, которое можно использовать для других потоков.  [3]

Из списка видно, что набор объектов синхронизации достаточно широк и разнообразен. Важность использования первых пяти объектов поясним на примере. Ожидание одним потоком завершения другого при помощи объекта событие слишком громоздко, к тому же установка соответствующего события перед завершением потока еще не означает, что поток завершился.  [4]

Ожидающие функции, использующие семафор в качестве объекта синхронизации, уменьшают значение счетчика. Поток может последовательно запрашивать семафор, используя ожидающую функцию. Но использование функции WaitForMultipleObjects ( или подобной), у которой в качестве массива объектов задан массив дескрипторов одного и того же семафора, уменьшит значение счетчика последнего только на единицу.  [5]

Вызов интерфейса Win32 WaitForMultipleObjects позволяет потоку блокироваться на множестве объектов синхронизации, чьи дексрипторы передаются этой функции в виде параметров. Вызывающий поток отпускается, как только один из этих объектов получает сигнал. Может ли набор объектов синхронизации включать в себя два семафора, один мыотекс и одну критическую область.  [6]

При использовании мыотекса вызывается функция: rCreateMutex Win32 API для создания объекта синхронизации - мыотекса.  [7]

8 Объекты синхронизации Win32. [8]

При вызове функций: : WaitForSingleObject или: : WaitForMultipleObject к ожиданию доступа к объектам синхронизации может добавиться ожидание доступа к объектам Windows других типов. В табл. 22.2 перечислены эти объекты. Для каждого из них приведены функции или переменные, с помощью которых можно получить дескриптор объекта и описание события, освобождающего объект.  [9]

Вызывающий поток отпускается, как только один из этих объектов получает сигнал. Может ли набор объектов синхронизации включать в себя два семафора, один мьютекс и одну критическую область.  [10]

Вспомните: при использовании объекта синхронизации нужно передавать его дескриптор соответствующей функции Win32 API. Но, как правило, дескриптор Windows, полученный процессом ( например, дескриптор мьютекса, полученный при вызове функции: : CreateMutex), не может использоваться другим процессом.  [11]

Для синхронизации отдельных процессов используются мьютексы, семафоры или события. При этом каждый процесс получает собственный дескриптор объекта синхронизации.  [12]

Данная функция по сути схожа с вышеперечисленными, за исключением того, что в качестве объекта синхронизации выступает сигнал от последовательного порта.  [13]

Эти два метода использования дескрипторов менее удобны, чем вызовы функций: : Create. Однако эти методы применимы для совместного использования широкого набора дескрипторов различных типов, в частности - объектов синхронизации, потоков, процессов, каналов, объектов файлов памяти и любых других, созданных функцией Win32 API: : CreateFile. В системе Windows разным процессам нельзя совместно использовать дескрипторы следующих объектов: выделенной памяти, графических объектов и окон. Эти объекты всегда остаются собственностью процесса.  [14]

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



Страницы:      1    2