Повторно используемый код является допускающей повторное использование стандартной программой программирования, которую несколько программ могут использовать одновременно. Операционные системы и другое системное программное обеспечение, которые используют многопоточность, чтобы обработать параллельные события, используют повторно используемый код. В параллельной среде несколько потоков или процессов могут попытаться считать и записать статические данные одновременно. Поэтому совместное использование кода, который использует персистентные или статические данные, является трудным. Повторно используемый код не содержит статические данные. Программы вызова поддерживают свои переменные состояния и передают их в функцию. Поэтому любое количество потоков или процессов может совместно использовать одну копию повторно используемой стандартной программы.
Сгенерируйте повторно используемый код когда это необходимо к:
Разверните свой код в многопоточных средах.
Используйте алгоритм с персистентными данными, принадлежащими различным процессам или потокам.
Скомпилируйте код, который использует функциональные переменные, которые являются слишком большими, чтобы соответствовать на стеке.
Если вы не задаете повторно используемый код, MATLAB® Coder™ генерирует код, который использует статически выделенную память для:
Функциональные переменные, которые являются слишком большими, чтобы соответствовать на стеке
Глобальные переменные
Персистентные переменные
Если сгенерированный код использует выделение статического ЗУ для этих переменных, вы не можете развернуть сгенерированный код в средах, которые требуют повторно используемого кода. Если вы не можете настроить размер выделения статического ЗУ, сгенерированный код может привести к переполнению размера статического ЗУ.
Когда вы генерируете повторно используемый код, MATLAB Coder создает структуры входных данных для:
Функциональные переменные, которые являются слишком большими, чтобы соответствовать на стеке
Персистентные переменные
Глобальные переменные
Можно затем динамически выделить память для этих входных структур. Использование динамического выделения памяти означает, что можно развернуть код в повторно используемых средах.