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

Смешивание synchronized() с ReentrantLock.lock()
Используют ли в Java ReentrantLock.lock() и ReetrantLock.unlock() тот же механизм блокировки, что и synchronized() ? Моя догадка "Нет", но я надеюсь, что ошибаюсь. Пример: Представьте, что поток 1 и поток 2 имеют доступ к:...
5641 просмотров
schedule 12.12.2023

Является ли match(Uri) класса UriMatcher реентерабельным?
Во всех виденных мной примерах создания ContentProvider использовались метод UriMatcher#match(Uri) в insert , query , update и delete для простой обработки всех шаблонов URI, на которые отвечает поставщик контента (например:...
394 просмотров

Многопроходный анализ классов Flex/Bison
Пишу компилятор для игрушечного ОО-языка. Я пишу это на C, используя Flex и Bison. Рассмотрим следующий синтаксис: class MyClass { int m_n; void MyFunc(int b) { m_n = 5; m_p = b; } int m_p; } Мой...
685 просмотров
schedule 20.12.2023

Являются ли fprintf и fscanf реентерабельными при использовании разных файловых дескрипторов
Могу ли я иметь 2 потока в одном процессе, вызывающем fprintf или fscanf одновременно? Один поток записывается первым потоком и читается вторым потоком, а другой поток читается первым потоком и записывается вторым потоком. Итак, у меня нет...
1688 просмотров
schedule 22.02.2022

Нереентерабельная функция в API, используемом в многопоточной программе.
Я использую QT API в C++, но я полагаю, что ответы могут быть эффективно получены от людей, не имеющих опыта работы с QT. QT имеет функцию в своем классе обработки XML, называемую setContent(), которая определена как нереентерабельная. При вызове...
258 просмотров
schedule 16.03.2023

В чем смысл ReentrantLock в Java?
Повторный вход означает, что блокировки устанавливаются для каждого потока, а не для каждого вызова. Поскольку внутренняя блокировка удерживается потоком, не означает ли это, что поток, запущенный один раз, равен основе вызова? Спасибо, кажется,...
16003 просмотров
schedule 07.10.2023

Ошибки при создании реентерабельного парсера
Я много пробовал, но не мог понять, в чем заключаются ошибки. Любое подробное объяснение этого будет очень полезно. Итак, в основном я пытаюсь написать реентерабельный парсер, и это мои файлы. Lex1.ll %{ #include "Globals.h" #include...
2338 просмотров
schedule 22.02.2022

Можно ли изменить статус гибкости с помощью действий грамматики бизона?
Я создаю реентерабельный синтаксический анализатор flex/bison на C и активно использую состояния внутри лексического лексера, в основном эксклюзивные. Но я был бы признателен, если бы это было возможно, чтобы установить состояние лексера из...
262 просмотров
schedule 27.04.2023

Как автоматизировать проверку соответствия библиотеки функций C повторному входу?
Имея библиотеку функций C, есть ли способ автоматизировать проверку, если экспортируемые функции реентерабельны? Либо во время выполнения (после инструментария, если необходимо), либо после анализа кода. Исходный код доступен. Примечание: это...
304 просмотров

pthread: уничтожение глобального статического мьютекса
Этот код был взят из 3-го издания Advanced Programming in the UNIX Environment, написанного Ричардом Стивенсом. Это пример того, как сделать реентерабельную версию getenv() . Это демонстрируется здесь только в учебных целях. /* Copyright (c)...
1549 просмотров
schedule 26.07.2022

Ожидание/уведомление Java в повторно входящих синхронизированных блоках
Мое понимание блоков Java synchronized() заключается в том, что если поток уже владеет блокировкой объекта, он может войти в другой блок, синхронизированный с тем же объектом (синхронизация с повторным входом). Ниже я считаю, что JVM использует...
472 просмотров
schedule 19.10.2022

Проблемы с реентерабельным Flex и Bison
Я изучаю, как использовать реентерабельные Bison и Flex вместе. У меня уже есть простой калькулятор, работающий без возможности повторного входа. Однако, когда я активировал функцию повторного входа и внес необходимые изменения, я не смог заставить...
7226 просмотров
schedule 14.03.2023

Заботится ли MSP430G2553 о повторном входе в прерывание или мне следует выделять стеки для каждой задачи в ISR?
В настоящее время я инициализирую стеки для задач, которые необходимо обслуживать при получении прерывания. Например, есть 2 задачи, которые вызываются с разной периодичностью, однако обе задачи используют один и тот же ISR. Задача с более высокой...
44 просмотров
schedule 03.05.2022

Мониторы и повторный вход (поясняет разницу между кодом повторного входа и блокировкой повторного входа)
Чтение по замкам в C #. Я вижу, что возможность получить блокировку одного и того же объекта несколько раз считается возможной, потому что мониторы повторно въезжают. Определение реентерабельного кода, как оно определено в Википедии, не подходит в...
978 просмотров
schedule 27.04.2024