Cтраница 1
Мьютексы также представляют собой объекты ядра, используемые для синхронизации, но они проще семафоров, так как не содержат счетчиков. По существу, они являются блокировками, для работы с которыми используются функции API WaitForSingleObject и ReleaseMutex. [1]
Мьютексы тоже являются объектами ядра, но они проще семафоров, поскольку у них нет счетчиков. Идентификаторы мьютексов, как и идентификаторы семафоров, можно дублировать и передавать другим процессам, так что потоки из разных процессов могут иметь доступ к одному и тому же мьютексу. [2]
Мьютекс не способен считать, он может лишь управлять взаимным исключением доступа к совместно используемым ресурсам или кодам. Реализация мьютекса проста и эффективна, что делает использование мьютексов особенно полезным в случае потоков, действующих только в пространстве пользователя. [3]
Мьютекс - переменная, которая может находиться в одном из двух состояний: блокированном или неблокированном. Поэтому для описания мьютекса требуется всего один бит, хотя чаще используется целая переменная, у которой 0 означает неблокированное состояние, а все остальные значения соответствуют блокированному состоянию. Значение мьютекса устанавливается двумя процедурами. Если поток ( или процесс) собирается войти в критическую область, он вызывает процедуру mutex lock. Если мьютекс не заблокирован ( то есть вход в критическую область разрешен), запрос выполняется и вызывающий поток может попасть в критическую область. [4]
Мьютексы могут создаваться вызовом pthread mutex init и уничтожаться при помощи вызова pthread mutex destroy. Мьютекс может находиться в одном из двух состояний: блокированный и разблокированный. Если мьютекс уже заблокирован, то поток, обратившийся к этому вызову, блокируется. [5]
Мьютексы предназначены для кратковременной блокировки, например для защиты совместно используемой переменной. Они не предназначаются для долговременной синхронизации, например для ожидания, когда освободится накопитель на магнитной ленте. Для долговременной синхронизации предоставляются переменные состояния. [6]
Мьютексы также представляют собой объекты ядра, используемые для синхронизации, но они проще семафоров, так как не содержат счетчиков. По существу, они являются блокировками, для работы с которыми используются функции API WaitForSingleObject и ReleaseMutex. [7]
Мьютекс или критическая секция запрещает одновременный доступ к общему ресурсу более чем одного потока. [8]
Мьютекс не способен считать, он может лишь управлять взаимным исключением доступа к совместно используемым ресурсам или кодам. Реализация мьютекса проста и эффективна, что делает использование мьютексов особенно полезным в случае потоков, действующих только в пространстве пользователя. [9]
Мьютекс - переменная, которая может находиться в одном из двух состояний: блокированном или неблокированном. Поэтому для описания мьютекса требуется всего один бит, хотя чаще используется целая переменная, у которой 0 означает неблокированное состояние, а все остальные значения соответствуют блокированному состоянию. Значение мьютекса устанавливается двумя процедурами. Если поток ( или процесс) собирается войти в критическую область, он вызывает процедуру mutex lock. Если мьютекс не заблокирован ( то есть вход в критическую область разрешен), запрос выполняется и вызывающий поток может попасть в критическую область. [10]
Мьютексы могут создаваться вызовом pthread mutex init и уничтожаться при помощи вызова pthread mutex destroy. Мьютекс может находиться в одном из двух состояний: блокированный и разблокированный. Поток может заблокировать мьютекс с помощью вызова pthread mutex lock. Если мьютекс уже заблокирован, то поток, обратившийся к этому вызову, блокируется. [11]
Мьютексы предназначены для кратковременной блокировки, например для защиты совместно используемой переменной. Они не предназначаются для долговременной синхронизации, например для ожидания, когда освободится накопитель на магнитной ленте. Для долговременной синхронизации предоставляются переменные состояния. [12]
CreateMutex мьютекс не существует, то эта функция создает объект и возвращает дескриптор, который используется текущим процессом. Если мьютекс уже существует, то функция: : CreateMutex просто возвращает новый дескриптор того же объекта, который можно использовать в текущем процессе. Убедитесь, что мьютексу присвоено имя, которое не используется в другой программе, и что присвоенное каждой функции API оно точно совпадает с требуемым, включая регистр каждой буквы. [13]
Система мьютексов, которую мы только что рассмотрели, является только скелетом набора запросов. Программное обеспечение часто требует реализации разнообразных возможностей, и примитивы синхронизации не являются исключением. Например, в некоторых реализациях пакета потоков поставляется вызов mutex trylock, который либо предоставляет доступ к критической области, либо возвращает код ошибки, но в любом случае мгновенно возвращает управление, то есть не заставляет поток ждать. Этот запрос дает потоку возможность выбора в случае наличия альтернативы простому ожиданию. [14]
![]() |
Некоторые функции Win32 API для управления процессами, потоками и волокнами. [15] |