Публикации по теме 'mutex'


Внутренние мьютексы и блокировки в Golang
В современной разработке программного обеспечения концепция параллелизма относится к способности программы выполнять несколько задач или операций одновременно. Это обеспечивает эффективное использование системных ресурсов и повышение производительности. Отличительной особенностью языка программирования Go (Golang) является исключительная поддержка параллелизма. Однако параллельные системы создают проблемы, требующие осторожного подхода. Одна из таких проблем возникает, когда несколько..

Тот раз без мьютекса
Каждый разработчик, начинающий с многопоточности, вскоре узнает о необходимости блокировки структур. Причина довольно проста — если ваша программа имеет два потока выполнения, и есть шанс, что один из них изменит структуру, тогда вам нужно установить между ними блокировку. Точный способ, которым вы это делаете, немного зависит от языка, но старый способ сделать это в C и C++ — использовать скучный мьютекс, который вы запрашиваете до доступа к структуре, а затем освобождаете после...

Вопросы по теме 'mutex'

Нужен ли мне мьютекс в многопоточном приложении C ++ для защиты простого логического значения?
У меня есть многопоточное приложение C ++, которое выполняет 3D-рендеринг с помощью библиотеки OpenSceneGraph. Я планирую запустить цикл рендеринга OSG как отдельный поток с использованием boost :: thread, передавая в поток структуру данных,...
10961 просмотров

Нерекурсивное владение мьютексом
Я прочитал этот ответ на SO: Поскольку рекурсивный мьютекс имеет чувство собственности, поток, который захватывает мьютекс, должен быть тем же потоком, который освобождает мьютекс. В случае нерекурсивных мьютексов отсутствует чувство...
3665 просмотров
schedule 15.12.2023

Реализация блокировки мьютекса в C
Я пытаюсь сделать действительно простой мьютекс спин-блокировки в C, и по какой-то причине я получаю случаи, когда два потока получают блокировку одновременно, что не должно быть возможным. Он работает в многопроцессорной системе, поэтому может...
6774 просмотров
schedule 26.12.2023

Как я могу улучшить свое поведение в реальном времени в многопоточном приложении, используя pthreads и условные переменные?
У меня есть многопоточное приложение, использующее pthreads. У меня есть блокировка mutex() и условные переменные(). Есть два потока, один поток производит данные для второго потока, рабочего, который пытается обработать полученные данные в режиме...
517 просмотров

spin_lock на не приоритетных ядрах Linux
Я читал, что в системе с 1 ЦП и не приоритетным ядром Linux (2.6.x) вызов spin_lock эквивалентен пустому вызову и, таким образом, реализован таким образом. Я не могу этого понять: разве это не должно быть эквивалентно сну на мьютексе? Например,...
3306 просмотров
schedule 15.11.2023

Проблема производителя-потребителя: мьютекс posix дважды блокировался при использовании условной переменной?
Следующий код предназначен только для того, чтобы показать, как использовать переменную условия для синхронизации потоков (один производитель и множество потребителей) в процессе выполнения. См. строку для кода 'usleep (100);'. Когда я комментирую...
2389 просмотров
schedule 30.11.2023

DLL Mutex - пример
Возможный дубликат: безопасность потоков DLL Hi Я пишу DLL-файл в MS VS C++ Express, который загружается в несколько клиентских приложений одновременно, он использует общую память с другими экземплярами загруженной DLL. Предположим,...
3849 просмотров
schedule 07.12.2023

Использование мьютекса в С#
Я немного новичок в многопоточности в c# , и в целом в моей программе я использую mutex , чтобы позволить только 1 потоку попасть внутрь критической секции, и по неизвестной причине, выполняя некоторые cw-отпечатки, я вижу, что в мой критический...
66624 просмотров
schedule 29.01.2024

Один экземпляр Cron/мьютекс
Я должен убедиться, что скрипт cron может работать только с одним экземпляром одновременно. Теперь я использую простой TempFile и проверяю его при каждом запуске скрипта. Проблема в том, что скрипт не может снять эту блокировку при прерывании/сбое....
1686 просмотров
schedule 31.12.2023

Mutex для кода хоста CUDA? boost::mutex нет решения из-за переопределения BOOST_COMPILER с помощью nvcc
Кто-нибудь видит возможность синхронизации операций в хост-коде CUDA? Под хост-кодом CUDA я подразумеваю хост-код, который содержится в вашем .cu-файле и предварительно обрабатывается nvcc, а затем передается, например, в cl.exe в Windows. Из-за...
213 просмотров
schedule 26.12.2023

C++ Создание атомарной функции
void foo ( Bar* bar , void(Bar::*qux)(void) ) { if ( bar ) { bar->qux(); } } Проблема в: bar можно удалить после проверки другим потоком. Я не могу добавить члена мьютекса в Bar , чтобы заблокировать его....
9712 просмотров
schedule 20.09.2022

Используйте мьютекс для блокировки объекта
У меня есть приложение, которое создает объект, который необходимо заблокировать, поскольку этот объект создает объект внешнего аппаратного устройства (через стороннюю библиотеку DLL), а объект аппаратного устройства может быть создан только один раз....
2844 просмотров
schedule 23.05.2024

Нужен ли таймеру мьютекс
Я использую таймер в своей программе: timer = new Qtimer(); connect(timer, SIGNAL(timeout()), this, SLOT(readData())); timer.start(1000); И есть также другие слоты, которые могут запускаться взаимодействием с пользовательским интерфейсом: /*SLOT...
785 просмотров
schedule 11.04.2024

МНОГОПОТОЧНОСТЬ c - читать несколько файлов в одном файле
Я новичок в многопоточности, и я пытаюсь смоделировать банковские транзакции на том же текущем счете, используя многопоточность. Каждый поток считывает действия для выполнения из файла. Файл будет содержать операцию для каждой строки, состоящей из...
1186 просмотров
schedule 15.10.2022

Массивная загрузка ЦП с использованием std::lock (С++ 11)
Мои недавние попытки реализовать диспетчер потоков/мьютексов закончились 75%-й загрузкой ЦП (4 ядра), в то время как все четыре запущенных потока либо находились в спящем режиме, либо ожидали разблокировки мьютекса. Конкретный класс слишком велик...
8953 просмотров
schedule 30.03.2024

Каковы плюсы и минусы программирования без блокировок и программирования на основе блокировок?
Я использую С++ 11 в течение нескольких месяцев, мне нравится большинство компонентов стандартной библиотеки С++ 11, кроме компонентов, связанных с атомарными операциями. На мой взгляд, программирование без блокировок слишком сложно, чтобы в нем...
1319 просмотров
schedule 30.10.2023

Механизм регулирования Java
Обновление : я использую Java 1.6.34 без возможности обновления до Java 7. У меня есть сценарий, в котором мне разрешено вызывать метод только 80 раз в минуту. На самом деле это сервисный API, написанный третьей стороной, и он «закрывает»...
2382 просмотров

Является ли fopen() потокобезопасной функцией в Linux?
Если я использую вызов fopen(), чтобы открыть тот же файл в многопоточном режиме и записать данные в файл. Должен ли я использовать мьютекс, чтобы гарантировать, что данные не будут беспорядочными?
14614 просмотров
schedule 28.11.2022

Пробуждение потоков с помощью QWaitCondition
В моем приложении Qt есть рабочий поток, который обрабатывает новые данные, когда они доступны. До сих пор рабочий поток использовал QWaitCondition для пробуждения при появлении новых данных. Однако QWaitCondition срабатывает только тогда, когда...
2807 просмотров
schedule 31.10.2023

почему блокировка мьютекса в одном потоке не блокирует блокировку того же мьютекса в другом потоке?
В принципе, я не понимаю, почему этот код работает. Я был убежден, что блокировка мьютекса приведет к блокировке других попыток заблокировать мьютекс, но, похоже, это не так. #include <cstdio> #include <boost/thread.hpp> #include...
534 просмотров
schedule 28.01.2024