mutex- все статьи тега


Win32: как получить процесс / поток, которому принадлежит мьютекс?

Я работаю с приложением, в котором в любой момент времени должен существовать только один экземпляр. Для этого есть несколько возможностей: Проверьте запущенные процессы на соответствие имени нашего EXE (ненадежно) найти главное окно (ненадежно, и у меня не всегда есть главное окно) Создайте мьютекс с уникальным именем (GUID) Вариант мьютекса кажется мне наиболее надежным и элегантным. Однако, прежде чем мой второй экземпляр завершится, Я хочу отправить сообщение в уже запущенный экземпл ...

Пробуждение потоков с помощью QWaitCondition

Мое приложение Qt имеет рабочий поток, который обрабатывает новые данные, когда они доступны. До сих пор рабочий поток использовал QWaitCondition для пробуждения при появлении новых данных. Однако условие QWaitCondition запускается только тогда, когда поток активно ожидает через wait(). Однако может случиться так, что новые данные будут доступны, пока поток все еще работает, или непосредственно перед тем, как он перейдет к следующей команде wait (). Я ищу что-то вроде CEvent в MFC, который "п ...

Как правильно создать приложение с одним экземпляром?

использование C# и WPF под .NET (а не Windows Forms или консоль), каков правильный способ создания приложения, которое может быть запущено только как один экземпляр? Я знаю, что это как-то связано с какой-то мифической вещью, называемой мьютексом, редко я могу найти кого-то, кто беспокоится о том, чтобы остановиться и объяснить, что это такое. код должен также сообщить уже запущенному экземпляру, что пользователь попытался запустить второй, и, возможно, также передать любые аргументы командно ...

Что такое хороший шаблон для использования глобального мьютекса в C#?

класс мьютексов очень неправильно понимается, а глобальные мьютексы тем более. Что такое хорошо и безопасным для использования при создании глобальных мьютексов? для работы независимо от локали моя машина находится в гарантированно освободить мьютекс правильно необязательно не зависает навсегда, если мьютекс не приобретается имеет дело со случаями, когда другие процессы отказываются от мьютекса ...

Когда следует использовать спин-замок вместо мьютекса?

Я думаю, что оба делают ту же работу,как вы решаете, какой из них использовать для синхронизации? ...

Что такое Swift эквивалент Objective-C "@synchronized"?

Я искал Swift книгу, но не могу найти Swift версию @synchronized. Как сделать взаимное исключение в Swift? ...

Почему функции переменных состояния pthreads требуют мьютекса?

Я читаю на pthread.h; функции, связанные с переменной условия (например,pthread_cond_wait(3)) требуется мьютекс в качестве аргумента. Зачем? Насколько я могу судить, я собираюсь создать мьютекс просто использовать в качестве аргумента? Что этот мьютекс должен делать? ...

Мьютекс пример / учебник?

Я новичок в многопоточности, и пытался понять, как работают мьютексы. Сделал много гуглить и Я нашел неплохой учебник, но это все еще оставляло некоторые сомнения в том, как это работает, потому что я создал свою собственную программу, в которой блокировка не работала. один абсолютно неинтуитивный синтаксис мьютекса pthread_mutex_lock( &mutex1 );, где похоже, что мьютекс блокируется, когда то, что я действительно хочу заблокировать, - это какая-то другая переменная. Означает ли этот синтакс ...

Насколько эффективна блокировка разблокированного мьютекса? Какова стоимость мьютекса?

на языке низкого уровня (C, C++ или что-то еще): у меня есть выбор между тем, чтобы иметь кучу мьютексов (например, то, что дает мне pthread или что предоставляет собственная системная библиотека) или один для объекта. насколько эффективно блокировать мьютекс? Т. е. сколько существует инструкций ассемблера и сколько времени они занимают (в случае разблокировки мьютекса)? сколько стоит мьютекс? Это проблема, чтобы иметь действительно a много мьютексы? Или я могу просто бросить столько переменны ...

Есть ли мьютекс в Java?

есть ли объект мьютекса в java или способ его создания? Я спрашиваю, потому что Семафорный объект, инициализированный с 1 разрешением, мне не помогает. Подумайте об этом случае: try { semaphore.acquire(); //do stuff semaphore.release(); } catch (Exception e) { semaphore.release(); } Если исключение происходит при первом получении, выпуск в блоке catch увеличит разрешения, и семафор больше не является двоичным семафором. будет ли правильный путь? try { semaphore.acquire(); ...

Вызов pthread cond сигнала без блокировки мьютекса

Я где-то читал, что нужно запереть мьютекс перед вызовом pthread_cond_signal и разблокировать mutext после вызова его: процедура pthread_cond_signal() является используется для сигнала (или пробуждения) другого нить, которая ждет на переменная условия. Так и должно быть вызывается после блокировки мьютекса и должен разблокировать мьютекс для того, чтобы pthread_cond_wait() обычной полный. мой вопрос: не это нормально, чтобы позвонить pthread_cond_signal или pthread_cond_broad ...

C++11: Почему переменная std::condition использует std:: unique lock?

Я немного запутался в роли std::unique_lock при работе с std::condition_variable. Насколько я понял документация,std::unique_lock в основном раздутый замок охранник, с возможностью замены состояния между двумя замками. Я до сих пор использовать pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) для этой цели (я думаю, что это то, что STL использует на posix). Для этого нужен мьютекс, а не замок. какая здесь разница? Тот факт, что std::condition_variable занимается std::unique_lock ...

Как я должен иметь дело с мьютексами в подвижных типах в C++?

конструкция std::mutex не движимости, ни скопировать-технологичная. Это означает, что класс A, который содержит мьютекс, не получит конструктор перемещения по умолчанию. как бы я сделал этот тип A движимость в потокобезопасным способом? ...

Правильное использование мьютексов в Python

Я начинаю с нескольких потоков в Python (или, по крайней мере, возможно, что мой скрипт создает несколько потоков). будет ли этот алгоритм правильным использованием мьютекса? Я еще не тестировал этот код, и он, вероятно, даже не будет работать. Я просто хочу, чтобы processData выполнялась в потоке (по одному), а основной цикл while продолжал работать, даже если есть поток в очереди. from threading import Thread from win32event import CreateMutex mutex = CreateMutex(None, False, "My Crazy Mute ...