|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Synchronization Objects
A synchronization object is an object whose handle can be specified in one of the wait functions to coordinate the execution of multiple threads. More than one process can have a handle to the same synchronization object, making interprocess synchronization possible.
The following object types are provided exclusively for synchronization.
Type Description Event Notifies one or more waiting threads that an event has occurred. For more information, see Event Objects. Mutex Can be owned by only one thread at a time, enabling threads to coordinate mutually exclusive access to a shared resource. For more information, see Mutex Objects. Semaphore Maintains a count between zero and some maximum value, limiting the number of threads that are simultaneously accessing a shared resource. For more information, see Semaphore Objects. Timer Notifies one or more waiting threads that a specified time has arrived. For more information, see Waitable Timer Objects.
Though available for other uses, the following objects can also be used for synchronization.
Object Description Change notification Created by the FindFirstChangeNotification function, its state is set to signaled when a specified type of change occurs within a specified directory or directory tree. For more information, see Files. Console input Created when a console is created. The handle to console input is returned by the CreateFile function when CONIN$ is specified, or by the GetStdHandle function. Its state is set to signaled when there is unread input in the console's input buffer, and nonsignaled when the input buffer is empty. For more information about consoles, see Consoles and Character-Mode Support. Process Created when a new process is created by calling the CreateProcess function. Its state is set to nonsignaled while the process is running, and signaled when the process terminates. For more information about processes, see Processes and Threads. Thread Created when a new thread is created by calling the CreateProcess, CreateThread, or CreateRemoteThread function. Its state is set to nonsignaled while the thread is running, and signaled when the thread terminates. For more information about threads, see Processes and Threads.
In some circumstances, you can also use a file, named pipe, or communications device as a synchronization object; however, their use for this purpose is discouraged. For additional information about I/O operations on files, named pipes, or communications, see Synchronization and Overlapped Input and Output.
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Объекты Синхронизации
Объект синхронизации - объект, чья ручка может быть определена в одной из функций ожидания, чтобы координировать выполнение многочисленной резьбы. Более, чем один процесс может иметь ручку на тот же объект синхронизация, делающую межпроцессовой синхронизацией возможно.
Объектные типы следующего предусматриваются исключительно для синхронизации.
Описание Типа Случай Уведомляет одно или более ожиданий резьбы, что случай произошел. Более подробно, смотри Объекты Случая. Mutex Может быть принадлежащим только одной резьбе за один раз, приспосабливающейся резьбу, чтобы координировать взаимно исключительный доступ к коллективному ресурсу. Более подробно, смотри Объекты Mutex. Семафор Поддерживает счет между нулевой и некоторые максимальный величина, ограничивающий количество резьбы, которая одновременно получает коллективный ресурс. Более подробно, видьте как Семафор Возражал. Таймер Уведомляет одно или более ожиданий резьбы, что определенное время прибыло. Более подробно, смотри Таймерные Объекты Waitable.
Все-же доступный для другого используется, следующее возражает может также использовано для синхронизации.
Описание Объекта Уведомление Изменения Создавалось функцией FindFirstChangeNotification, состояние установлен на сигнализированное когда определенный тип изменения происходит в пределах определенного дерева директория или директория. Более подробно, смотри Файлы. Консольный вклад Создавался когда консоль создана. Ручка, чтобы утешать вклад возвращан функцией CreateFile когда CONIN$ определен, или функцией GetStdHandle. Состояние установлено на сигнализированное когда есть unread вклад в консольном входном буфере, и nonsignaled когда входной буфер пустой. Более подробно о консолях, смотри Консоли и Поддержку Character-Mode. Процесс Создавался когда новый процесс создан вызовом функции CreateProcess. Состояние установлено на nonsignaled пока процесс выполняет, и сигнализированное когда процесс завершается. Более подробно о процессах, смотри Процессы и Резьбу. Резьба Создавалась когда новая резьба создана вызовом CreateProcess, CreateThread, или функцией CreateRemoteThread. Состояние установлено на nonsignaled пока резьба выполняет, и сигнализированное когда резьба завершается. Более подробно о резьбе, смотри Процессы и Резьбу.
В некоторых обстоятельствах, Вы можете также использовать файл, назвавший трубу, или устройство связи как объект синхронизации; тем не менее, их использование с этой целью отговорено. Для дополнительной информации об операции В/В на файлы, назвавшей трубы, или связь, смотри Синхронизацию и Перекрывшую Ввод и Выход.
|
|
|
|
| |