Provides an interface for a executing context, which asynchronously invokes Callable ([4] [func.wrap.func]) objects in a guaranteed thread-safe context. The execute(...) method in [SWS_CORE_00024] returns a ara::core::Future object to the caller for further result/error extraction or management of the asynchronous-context; the execute_oneway(...) method in [SWS_CORE_00025] imply fire-and-forget semantics and thus no asynchronous-context (ara::core::Future) is returned.
Literaturverzeichnis SWS Core: [4] ISO/IEC 14882:2014, Information technology – Programming languages – C++ – www.iso.org
Обеспечивает асинхронное, потокобезопасное выполнение вызываемых объектов с опциональным возвратом через future-объекты.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 690890643de1ПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Обеспечивает асинхронное, потокобезопасное выполнение вызываемых объектов с опциональным возвратом через future-объекты.
Класс ara::core::Executor предоставляет интерфейс для асинхронного выполнения вызываемых объектов в гарантированно потокобезопасном контексте. Задачи либо запускаются ориентированно на результат через execute[SWS_CORE_00024] с возвратом ara::core::Future для значений или кодов ошибок, либо передаются независимо от состояния через oneway_execute[SWS_CORE_00025] в режиме fire-and-forget. В качестве ключевого граничного условия следует учесть, что сам execute не является потокобезопасным, и параллельные вызовы на одном и том же экземпляре должны синхронизироваться извне, тогда как выполнение вызываемого объекта в фоновом режиме происходит потокобезопасно.
Контекст
Класс ara::core::Executor предоставляет интерфейс для контекста выполнения, который асинхронно исполняет вызываемые сущности (callables) в гарантированной потокобезопасной среде. Он служит уровнем абстракции между вызывающим потоком и асинхронной фоновой обработкой. Для передачи задач доступны два механизма: метод execute[SWS_CORE_00024] передает задачу с ориентацией на результат и возвращает объект ara::core::Future, с помощью которого можно синхронизировать и запросить последующее возвращаемое значение или код ошибки. Для простых уведомлений или не зависящих от состояния фоновых операций класс предоставляет метод oneway_execute[SWS_CORE_00025], который следует семантике fire-and-forget и не возвращает асинхронный контекст вызывающей стороне. По всей видимости, конкретная реализация инкапсулирует в фоновом режиме управление потоками или очередь задач для координации параллельной обработки. Вопрос Q-068fe33f2900d6cf (открытый)
Жизненный цикл
Инстанцирование и время жизни ara::core::Executor подчиняются дифференцированным правилам в отношении безопасности исключений и потокобезопасности:
Копирование: конструктор копирования [SWS_CORE_00009] и оператор присваивания копированием [SWS_CORE_00017] специфицированы как потокобезопасные, однако не классифицированы как безопасные относительно исключений (not exception safe). Поэтому операция копирования может завершиться сбоем, если не удается выделить необходимые ресурсы.
Перемещение: конструктор перемещения [SWS_CORE_00015] и оператор присваивания перемещением [SWS_CORE_00018] объявлены как noexcept и, следовательно, безопасны относительно исключений. Однако операции перемещения не являются потокобезопасными (not thread-safe), поэтому одновременный доступ во время перемещения должен синхронизироваться вызывающей стороной.
Уничтожение: деструктор [SWS_CORE_00019] выполнен как noexcept и является потокобезопасным, благодаря чему жизненный цикл экземпляра может быть корректно завершен.
Что касается параллелизма во время работы, наблюдается фундаментальное разделение: в то время как oneway_execute[SWS_CORE_00025] потокобезопасен, execute[SWS_CORE_00024] классифицирован как непотокобезопасный. Отсутствие потокобезопасности в execute, вероятно, связано с внутренним созданием базового объекта состояния и управлением им для результирующего future-объекта, поэтому одновременные вызовы execute на одном и том же экземпляре должны синхронизироваться извне. Вопрос Q-4425e6b07758230e (открытый)
Путь использования
Использование ara::core::Executor делится на два основных пути в зависимости от того, требуется ли возвращаемое значение:
Путь, ориентированный на результат (execute): вызывающая сторона передает вызываемый объект f, а также необязательные аргументы p... в execute[SWS_CORE_00024]. Метод немедленно возвращает ara::core::Future, тип результата которого основан на выведенном типе возвращаемого значения вызова. Вызываемый объект выполняется асинхронно в гарантированном контексте. Как только обработка завершена, вызывающая сторона может извлечь результирующее значение или потенциальный код ошибки из future-объекта.
Односторонний путь (oneway_execute): если вызывающей стороне не требуется ни обратная связь, ни синхронизация, вызывается oneway_execute[SWS_CORE_00025]. Вызываемый объект также выполняется асинхронно, однако возвращаемое значение отсутствует (void).
Диаграмма последовательности: асинхронная обработка задач через execute и опрос результата через Future. Источники: [SWS_CORE_00024]
Сценарии ошибок
Методы вызова execute[SWS_CORE_00024] и oneway_execute[SWS_CORE_00025] не генерируют исключений C++; оба явно специфицированы как noexcept. Аналогично, спецификация для execute не определяет стандартизированных кодов ошибок для самого вызова передачи [SWS_CORE_00024].
Однако если во время асинхронной обработки вызываемого объекта возникает ошибка, она распространяется через возвращенный методом execute объект ara::core::Future: в случае ошибки future инкапсулирует код ошибки, тогда как в случае успеха предоставляется тип ara::core::Result::value_type с результатом функции [SWS_CORE_00024]. В случае oneway_execute[SWS_CORE_00025] возможность возврата ошибки вызывающей стороне конструктивно отсутствует; ошибки остаются в асинхронном контексте.
Это руководство было подготовлено ИИ и опирается исключительно на спецификацию AUTOSAR Adaptive R25-11.
Asynchronously invoke F with the provided arguments P....
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9d31d266cefdПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Функция execute класса ara::core::Executor служит для асинхронного выполнения переданного объекта функции f вместе с аргументами p... ([SWS_CORE_00024]). В качестве возвращаемого значения она возвращает ara::core::Future, который в случае успеха инкапсулирует результат вызова или в случае ошибки предоставляет соответствующий код ошибки ([SWS_CORE_00024]). Сама функция объявлена со спецификатором noexcept.
Стандартизированные коды ошибок для вызова функции не специфицированы ([SWS_CORE_00024]). В отношении параллелизма execute хотя и классифицируется как exception safe, однако явно считается not thread-safe ([SWS_CORE_00024]). Параллельный доступ к одному и тому же экземпляру ara::core::Executor, вероятно, должен синхронизироваться на уровне пользователя. Вопрос Q-6b839826a7d9742f (открытый)
Взаимодействие с асинхронными потоками управления проявляется, в частности, при цепочках через then ([SWS_CORE_00337], [SWS_CORE_06237]). Туда передается контекст исполнителя (Executor), в контексте которого выполняются последующие функции продолжения (continuation) с полученным ara::core::Result.
Этот текст был сгенерирован автоматически. Все технические данные основаны на спецификации AUTOSAR Adaptive R25-11.
ara::core::Future<std::invoke_result_t<std::decay_t< F >, std::decay_t< P >... > >
• If successful: an ara::core::Future containing a ara:: core::Result::value_type containing the result of the callable F • If unsuccessful: an ara::core::Future containing an Error Code
Fehler
Fehlercode
Beschreibung
This function does not specify any standardized errors.
Request a governed re-review of this record. The record is not changed immediately.
Asynchronously invoke F with the provided arguments P....
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 1e96ad32e48dПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование и семантика
Шаблонная функция oneway_execute класса ara::core::Executor служит для асинхронного выполнения вызываемой сущности f (Callable) с переданными аргументами p...[SWS_CORE_00025]. Поскольку функция не возвращает значения (тип возврата void) и выполнение происходит асинхронно, вызов немедленно возвращает управление вызывающей стороне, не дожидаясь окончания или результата выполнения [SWS_CORE_00025].
Обработка ошибок и безопасность исключений
Функция объявлена как noexcept и специфицирована как безопасная относительно исключений (exception safe) [SWS_CORE_00025]. Возможные ошибки или исключения внутри переданного Callable-объекта поэтому, вероятно, должны перехватываться и обрабатываться внутри самого Callable, поскольку обратная связь об ошибке или исключение не могут быть переданы в вызывающий контекст. Вопрос Q-c8d31cfa9c2e3ab9 (открытый)
Параллелизм и ограничения
Согласно спецификации oneway_execute классифицирована как потокобезопасная (thread-safe) [SWS_CORE_00025]. Таким образом, функция может вызываться конкурентно из различных потоков на одном и том же экземпляре ara::core::Executor. Подключение осуществляется через заголовочный файл #include "ara/core/executor.h"[SWS_CORE_00025].
Это указание по использованию было создано автоматически на основе AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал