По умолчанию сгенерированный код создает static
переменные для переменных, размер которых превышает максимальное значение использования стека, сохраненное в параметре объекта настройки StackUsageMax
. Данные в static
переменные сохраняются между вызовами функции. Точно так же данные для глобальных переменных MATLAB® и persistents существуют между вызовами функции. Поэтому, если ваша основная функция выполняет сгенерированный код в нескольких потоках, неопределенные условия состязания могут произойти.
Чтобы сгенерировать код, более подходящий для одновременного выполнения в нескольких потоках, можно использовать MultiInstanceCode
параметр конфигурации. Когда вы используете эту опцию, сгенерированный код переносит данные, которые могут превысить локальное устройство хранения данных потока в определение структуры, так, чтобы можно было выделить ориентированную на многопотоковое исполнение память для той структуры индивидуально. Точно так же генератор кода переносит персистентные и глобальные данные в свою собственную структуру памяти. Когда эта память не должна быть совместно использована, можно выделить отдельную память для структур данных, используемых потоком.
Повторно используемый код является допускающей повторное использование стандартной программой программирования, которую несколько программ могут использовать одновременно.
API для сгенерированного повторно используемого кода
Используйте сгенерированный повторно используемый код.
Задайте генерацию повторно используемого кода
Сгенерируйте повторно используемый код в приложении MATLAB Coder™ или в командной строке.
Вызовите повторно используемый код в однопоточной среде
Используйте сгенерированный повторно используемый код в однопоточной среде.
Вызовите повторно используемый код в многопоточной среде
Используйте сгенерированный повторно используемый код в многопоточной среде.
Сгенерируйте повторно используемый код С из кода MATLAB
Сгенерируйте допускающий повторное использование, повторно используемый код С.
Вызовите повторно используемый код без персистентных или глобальных данных (только UNIX)
Сгенерируйте повторно используемый код, который использует поток POSIX (pthread) библиотеки.
Вызовите повторно используемый код — многопоточный с персистентными данными (Windows Only)
Сгенерируйте повторно используемый код, который пользуется библиотеками, которые характерны для платформ Windows®.
Вызовите повторно используемый код — многопоточный с персистентными данными (только UNIX)
Сгенерируйте повторно используемый код, который использует поток POSIX (pthread) библиотеки.