Вопросы по теме 'critical-section'
Отключить аппаратные и программные прерывания
Можно ли отключить все прерывания с помощью программы ASM/C/C++, чтобы получить полный контроль над процессором?
Если да -> как?
Если нет -> как работают системные вызовы «атомарных» операций (например, вход в критическую секцию)?
Спасибо за...
10156 просмотров
schedule
02.06.2022
Есть ли какие-либо последствия, если никогда не удалять критические разделы?
Я улучшаю большой объем нативного кода, который использует несколько статических критических секций и никогда не вызывает DeleteCriticalSection , оставляя их для обработки выхода для очистки.
Нет никаких утечек и никаких опасений по поводу того,...
455 просмотров
schedule
11.04.2022
Каким будет код критической секции для общей очереди, к которой обращаются два потока?
Предположим, у нас есть общая очередь (реализованная с помощью массива), к которой могут обращаться два потока, один для чтения из нее данных, а другой для записи в нее данных. Теперь у меня проблема с синхронизацией. Я реализую это с помощью Win32...
1637 просмотров
schedule
08.06.2022
Являются ли 16 миллисекунд необычно большим временем ожидания выполнения незаблокированного потока, работающего в Windows?
Недавно я выполнял некоторые глубокие проверки времени в приложении DirectShow, которое у меня есть в Delphi 6, используя компоненты DSPACK. В рамках моей диагностики я создал класс Critical Section, который добавляет функцию тайм-аута к обычному...
478 просмотров
schedule
08.06.2022
Критические секции и возвращаемые значения в C++
Пытаясь создать потокобезопасный контейнерный класс с нуля, я столкнулся с проблемой возврата значений из методов доступа. Например в Windows:
myNode getSomeData( )
{
EnterCriticalSection(& myCritSec);
myNode retobj;
// fill retobj with...
1078 просмотров
schedule
13.05.2024
Win32 - должна ли структура CRITICAL_SECTION иметь определенное (4/8 байт) выравнивание?
Я работаю над проектом, в котором по умолчанию используется 1-байтовое выравнивание, в том числе в местах, где используется структура CRITICAL_SECTION. Я исследую определенный тупик и вижу, что данные в структуре CRITICAL_SECTION, которая вызывает...
326 просмотров
schedule
02.09.2022
Вложенные блокировки (критическая секция) не работают
Я изучаю критическую секцию (для многопоточности) и нашел класс в Интернете, использующий ее. Я не понимаю, почему мой код не работает - я должен получить "успех" на дисплее консоли, но я этого не делаю.
Я неправильно запираю? Я уверен, что...
1163 просмотров
schedule
01.03.2022
Критическая секция при чтении данных потоками
У меня есть два разных потока (помимо основного потока).
Первый отправляет в основной поток PostMessage с данными. В результате получения сообщения основной поток модифицирует соответствующие глобальные переменные (разные типы).
Другой поток...
1040 просмотров
schedule
09.07.2022
Переменная условия Boost эквивалентна CRITICAL_SECTION
В настоящее время у меня есть раздел кода boost::mutex в моем приложении, который выглядит примерно так
{//Lock
boost::unique_lock<boost::mutex> lock(some_mutex);
while(container.empty())
{
condition_var.wait(lock);
}/*Block...
342 просмотров
schedule
26.07.2023
Стоимость мьютекса, критической секции и т. д. в Windows
Я где-то читал, что накладные расходы на мьютекс не так уж велики, потому что переключение контекста происходит только в случае конфликта.
Также известны фьютексы в Linux.
Справится ли то же самое с Windows? Является ли Critical Section более...
6855 просмотров
schedule
24.04.2023
Алгоритм критического раздела для удовлетворения хода процессов путем сравнения двух алгоритмов?
Вот два алгоритма для критической секции. Первый не удовлетворяет прогрессивному требованию, а второй является решением. Я думаю, что есть проблема со вторым, но мой лектор этого не признал. Нам нужно как-то присвоить повороту новое значение после...
875 просмотров
schedule
07.04.2023
Взаимоблокировка EnterCriticalSection
Я нашел некоторый код, который утверждал, что может заставить поток спать в течение точного времени. Тестирование кода, кажется, работает отлично, однако он всегда блокируется после короткого промежутка времени.
Вот исходный код. Я ставил...
993 просмотров
schedule
22.05.2022
Критические разделы и отключение / разрушение?
Я не могу понять, что такое правильная процедура выключения, когда у вас есть объект OBJ1, который содержит критический раздел CS и указатель на другой объект OBJ2.
Допустим, у вас есть две функции A и B.
A входит в критическую секцию, изменяет...
525 просмотров
schedule
31.05.2022
Зачем нам нужны события для синхронизации потоков?
Если, например, только 1 поток может получить доступ к Critical Section за раз, зачем нам Events , чтобы синхронизировать 2 потока для чтения / записи через него?
64 просмотров
schedule
02.05.2022
Лучший эквивалент для EnterCriticalSection в Mac OS X?
Какой лучший аналог? Я не нашел разумного решения для такой простой функции. Варианты, о которых я знаю:
1) MPEnterCriticalRegion - это, к сожалению, крайне неэффективно, вероятно, потому, что, несмотря на свое имя, он входит в режим ядра,...
889 просмотров
schedule
23.06.2022
InitializeCriticalSectionAndSpinCount оптимальный SpinCount (пользовательский режим)
Я не совсем понимаю документацию для InitializeCriticalSectionAndSpinCount: http://msdn.microsoft.com/en-us/library/windows/desktop/ms683476(v=vs.85).aspx
В нем говорится: «Вы можете значительно улучшить производительность, выбрав небольшое...
3329 просмотров
schedule
03.03.2023
Блокировка чтения/записи с использованием только критической секции вызывает взаимоблокировку
Пройдя через этот вопрос с тем же заголовком и его ответы , я подумал попробовать что-то, что действительно должно работать только с использованием критической секции и, следовательно, должно быть намного быстрее, чем существующие решения (которые...
883 просмотров
schedule
15.10.2022
Сортировка массива в openmp — критический раздел
Очень похоже на этот вопрос Сортировка массива в openmp , который имеет несколько сотен просмотров, но не правильный отвечать. Поэтому я еще раз попробую спросить здесь снова. Я знаю о накладных расходах и бесполезности этого в отношении ускорения...
260 просмотров
schedule
20.12.2022
Есть ли способ найти время, затрачиваемое функцией в критической секции (между отключением и включением прерываний)
У меня есть функция, которая отключает прерывания перед выполнением функции и повторно разрешает прерывания после завершения функции.
Здесь мое требование состоит в том, чтобы найти сколько времени занимает выполнение функции?
Абстрактно это...
57 просмотров
schedule
08.03.2023
Как передать право собственности на объект синхронизации в C++ или Winapi?
Можно ли передать право собственности на мьютекс, критическую секцию и т. д. от первого потока второму потоку, не позволяя тем временем какому-либо третьему потоку захватить право собственности? документация по критической секции запрещает вызывать...
1411 просмотров
schedule
05.05.2022