ПРИКАСПИЙСКИЙ ЖУРНАЛ

УПРАВЛЕНИЕ И ВЫСОКИЕ ТЕХНОЛОГИИ

МНОГОПОТОЧНАЯ ОБРАБОТКА ИЗОБРАЖЕНИЙ С ИСПОЛЬЗОВАНИЕМ API WEB-WORKERS

Читать Бородин Олег Валерьевич, Егунов Виталий Алексеевич МНОГОПОТОЧНАЯ ОБРАБОТКА ИЗОБРАЖЕНИЙ С ИСПОЛЬЗОВАНИЕМ API WEB-WORKERS // Прикаспийский журнал:  управление и высокие технологии. — 2021. — №3. — Стр. 33-46.

Бородин Олег Валерьевич - Волгоградский государственный технический университет, oleg.borodin.1998@mail.ru

Егунов Виталий Алексеевич - Волгоградский государственный технический университет, vegunov@mail.ru

В работе рассматривается WebWorkers API - средство, которое позволяет посредством языка JavaScript запускать пользовательские скрипты в фоновом потоке браузера. Использование WebWorkers API привносит в клиентскую веб-разработку многопоточность, которую изначально JavaScript не поддерживает. Рассматриваются проблемы асинхронного выполнения, с которыми можно столкнуться на клиентской стороне. Основное внимание уделяется одной из разновидностей воркеров - Dedicated Workers, их совместимости и применимости использования. Приводится в качестве примера несколько ситуаций, которые демонстрируют плюсы использования технологии. Рассматривается вычислительный эксперимент, в рамках которого осуществляется параллельная обработка нескольких изображений. Анализируется решение этой задачи как в многопоточной реализации, так и без использования WebWorkers API, анализируется полученное ускорение. Приводится обзор существующих решений, где в качестве альтернативы WebWorkers API приводится вариант асинхронного исполнения веб-приложений, в частности техника выполнения AJAX-запросов. Также в качестве некоторой альтернативы приводится использование Promise, которые используются для согласования синхронных и асинхронных действий приложения. Анализируются достоинства и недостатки технологии WebWorkers API. В конце работы подводятся итоги и выделяются реальные сценарии использования технологии.

Ключевые слова: JavaScript Multithreading, Web Development, Dedicated Workers, Web Workers API, Image Processing, Loaded Background Calculations, JavaScript Parallelize