<MyRusakov.ru />

Программирование на C++ в Unreal Engine 5

Программирование на C++ в Unreal Engine 5

Данный курс научит Вас созданию игр на C++ в Unreal Engine 5. Курс состоит из 12 разделов, в которых Вас ждёт теория и практика. Причём, в качестве практики будет создан весьма крупный проект объёмом свыше 5000 строк качественного кода, который уже на практике познакомит Вас с принципами создания игр на C++ в Unreal Engine 5.

Параллельно с курсом Вы также будете получать домашние задания, результатом которых станет, в том числе, полноценная серьёзная работа для портфолио.

Помимо самого курса Вас ждёт ещё и очень ценный Бонус: «Тестирование Unreal-проектов на Python», в рамках которого Вы научитесь писать очень полезные тесты для тестирования самых разных аспектов разработки игр.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Что такое Event Loop?

Что такое Event Loop?

Event Loop (цикл событий) — это фундаментальный механизм, лежащий в основе асинхронного программирования в таких языках, как JavaScript, Python (с библиотекой asyncio) и других. Этот механизм позволяет обрабатывать множество операций ввода-вывода без блокировки основного потока выполнения, что повышает эффективность и производительность приложений.

Основные концепции

Асинхронное программирование

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

Обещания и будущие объекты

Обещания (promises) и будущие объекты (futures) являются способами управления результатами асинхронных операций. Они представляют собой объекты, которые будут содержать результат операции в будущем. Event Loop управляет этими объектами, определяя, когда они готовы и вызывая соответствующие функции обратного вызова (callback).

Колбэки

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

Как работает Event Loop

1. Очередь событий

Event Loop основывается на очереди событий, в которую добавляются задачи (события), ожидающие выполнения. Когда асинхронная операция завершается, соответствующее событие добавляется в эту очередь.

2. Обработка событий

Event Loop постоянно проверяет очередь событий на наличие задач. Если задачи есть, он извлекает их из очереди и выполняет. Этот процесс продолжается до тех пор, пока в очереди есть события.

3. Вызов колбэков

Когда асинхронная операция завершается, Event Loop вызывает соответствующие колбэки. Например, при завершении сетевого запроса будет вызван колбэк, обрабатывающий ответ от сервера.

4. Бесконечный цикл

Event Loop — это бесконечный цикл, который продолжает выполняться, пока приложение работает. Он проверяет очередь событий, обрабатывает их и вызывает колбэки в непрерывном цикле.

Пример на JavaScript

В JavaScript Event Loop встроен в сам язык и используется вместе с обещаниями и колбэками. Вот простой пример:

console.log('Начало');

setTimeout(() => {
  console.log('Таймаут');
}, 0);

Promise.resolve().then(() => {
  console.log('Обещание');
});

console.log('Конец');

Вывод будет следующим:

Начало
Конец
Обещание
Таймаут

Здесь setTimeout и Promise представляют собой асинхронные операции. Event Loop сначала выполняет синхронные операции (console.log('Начало') и console.log('Конец')), затем асинхронные операции: сначала обещания (Promise), потом таймауты (setTimeout).

Пример на Python

В Python для работы с Event Loop используется модуль asyncio. Вот пример:

import asyncio

async def main():
    print('Начало')

    await asyncio.sleep(1)
    print('Таймаут')

    await asyncio.sleep(0)
    print('Конец')

asyncio.run(main())

Вывод будет следующим:

Начало
(задержка в 1 секунду)
Таймаут
Конец

Здесь asyncio.sleep(1) представляет собой асинхронную операцию, которая приостанавливает выполнение на 1 секунду, а asyncio.sleep(0) — немедленно возвращает управление.

Заключение

Event Loop является важной частью асинхронного программирования, позволяя приложениям оставаться отзывчивыми и эффективными, обрабатывая множество задач одновременно. Понимание работы Event Loop помогает разработчикам писать более эффективный и масштабируемый код, особенно в контексте ввода-вывода и сетевых операций.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.