Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Что такое многопоточность?

В однопоточной вычислительной системе за один раз поступает одна инструкция и за раз выводится один результат. Время загрузки и завершения программ зависит от объема работы, которую вам нужно выполнить на процессоре.

Многопоточность – это тип программирования, в котором используется способность ЦП обрабатывать множество потоков одновременно на нескольких ядрах. Вместо задач или инструкций, выполняемых одна за другой, они выполняются одновременно.

По умолчанию в начале программы запускается один поток. Это «основной поток». Основной поток создает новые потоки для обработки задач. Эти новые потоки выполняются параллельно друг другу и обычно после завершения синхронизируют свои результаты с основным потоком.

Этот подход к многопоточности хорошо работает, если у вас есть несколько задач, которые выполняются в течение длительного времени. Однако код разработки игр обычно содержит множество небольших инструкций для одновременного выполнения. Если вы создадите поток для каждого из них, вы можете получить много потоков, каждый с коротким временем жизни. Это может раздвинуть пределы вычислительной мощности вашего процессора и операционной системы.

Можно смягчить проблему продолжительности жизни потока, создав пул потоков. Однако, даже если вы используете пул потоков, у вас, вероятно, одновременно будет активным большое количество потоков. Наличие большего количества потоков, чем ядер ЦП, приводит к тому, что потоки конкурируют друг с другом за ресурсы ЦП, что вызывает частое переключение контекста в результате. Переключение контекста — это процесс сохранения состояния потока на полпути выполнения, затем работа с другим потоком, а затем реконструкция первого потока, чтобы продолжить его обработку. Переключение контекста требует больших ресурсов, поэтому по возможности следует избегать его использования.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3