.. role:: blue :class: blue Потокобезопасность объектов ядра ================================ .. _Thread-safety_of_kernel_objects: .. версия ядра: Потокобезопасность объектов ядра реализуется специальным механизмом – многопоточным кэшированием, которое обеспечивает потокобезопасный доступ к данным объекта ядра и делает возможным эффективное распараллеливание вычислений в случаях, когда объект обрабатывается одновременно в разных потоках. Каждый поток работает со своей копией кэшированных данных, что предотвращает конкуренцию за данные между потоками. Управляет многопоточными кэшами менеджер кэшей, который отвечает за создание, хранение и выдачу кэшированных данных объекта для текущего потока. Важно, что многопоточное кэширование эффективно работает как при многопоточных вычислениях, так и при последовательном выполнении вычислений. Несомненным плюсом является и то, что переход к использованию многопоточных кэшей требует минимальной переработки кода. При этом надо учитывать накладные расходы на поддержку многопоточных кэшей: - Несколько увеличивается использование памяти. - При отсутствии параллельности могут присутствовать незначительные дополнительные затраты времени на получение кэшированных данных. Механизм многопоточных кэшей может быть включен или отключен при переключении режима многопоточности ядра.