Worker — термин, используемый в программировании для обозначения отдельного фонового процесса или потока выполнения, предназначенного для выполнения задач вне основного потока управления приложения. В контексте веб-разработки это обычно относится к механизмам, таким как Web Worker и Service Worker, которые реализуют изоляцию вычислений и обработку асинхронных операций, снижая нагрузку на пользовательский интерфейс и повышая отзывчивость. Workers работают в собственном окружении исполнения, имеют отдельную область памяти и взаимодействуют с основным потоком посредством обмена сообщениями или других безопасных каналов коммуникации.
Исторически появление концепции worker связано с развитием многопоточности и необходимостью эффективной обработки длительных или блокирующих операций в интерфейсных приложениях. В веб-платформе Workers были введены для разделения вычислительных и сетевых задач от рендеринга страницы и реагирования на пользовательские действия. Помимо веб-браузеров, понятие worker используется и в серверных и прикладных средах, где lightweight workers реализуют параллельную обработку задач, очереди заданий и фоновые сервисы. Реализации могут различаться по возможностям, модели безопасности и способам взаимодействия с окружением.
- Изоляция выполнения: выполняются в отдельном контексте, не допускающем прямого доступа к DOM основного потока.
 - Обмен сообщениями: коммуникация с основным потоком и другими компонентами происходит через передачу сообщений или сериализуемых данных.
 - Асинхронность: предназначены для выполнения длительных или блокирующих операций без блокировки основного интерфейса.
 - Управление ресурсами: позволяют разграничивать использование памяти и процессорного времени, что облегчает масштабирование и управление нагрузкой.
 - Безопасность: часто работают в ограниченном окружении с контролем доступа к системным ресурсам и сетевым операциям.
 - Различные модели: существуют разные типы workers (например, одноразовые и сервисные), отличающиеся по жизненному циклу и назначению.
 - Паттерны использования: подходящи для фоновой обработки данных, вычислений, синхронизации, кэширования и обработки сетевых запросов.