Перейти к содержимому

Справочник API node:worker_threads

Совместимость потоков-воркеров и обмена сообщениями

На этой странице
Open in ChatGPTOpen in Claude

Пространство имён включает Worker, MessageChannel, MessagePort, BroadcastChannel, метаданные потоков, данные окружения и маркеры передачи.

ЭкспортНазначение
WorkerСоздать воркер из файла или вычисляемого исходного кода.
isMainThread, isInternalThread, threadIdОпределить текущий поток.
parentPort, workerDataВзаимодействовать с родительским воркером.
MessageChannel, MessagePort, BroadcastChannelПримитивы обмена сообщениями.
getEnvironmentData(), setEnvironmentData()Данные окружения воркеров.
receiveMessageOnPort()Синхронно прочитать сообщение из очереди порта.
функции маркеров передачиУправление клонированием и передачей.
SHARE_ENV, resourceLimitsЗначения конфигурации воркеров.

Работающий воркер удерживает elide run в работе, пока не завершится или не будет остановлен:

import { Worker } from "node:worker_threads";

const worker = new Worker(
  "require('node:worker_threads').parentPort.postMessage('done')",
  { eval: true },
);
worker.on("message", (msg) => {
  console.log(msg); // done
  worker.terminate();
});

--limit=workers=COUNT ограничивает число воркеров, которые может запустить скрипт; см. Песочница файловой системы.

Каналы в пределах одного realm описаны в разделе Web Messaging.

См. также

Reference

Status: Partial · 105 of 128 suite tests pass (82.0%)

worker_threads exports

BroadcastChannel, MessageChannel, MessagePort, Worker, getEnvironmentData, isInternalThread, isMainThread, isMarkedAsUntransferable, markAsUncloneable, markAsUntransferable, moveMessagePortToContext, parentPort, postMessageToThread, receiveMessageOnPort, resourceLimits, setEnvironmentData, threadId, threadName, workerData, 1 constants such as SHARE_ENV

Not implemented

locks.

Tests: node-api node:worker-threads: 105 pass, 22 fail, 1 error, 11 skipped. Failing: test-worker-cleanup-handles.js, test-worker-cpu-profile.js, test-worker-data-url.js, test-worker-eval-typescript.js, test-worker-exit-heapsnapshot.js, test-worker-heap-profile.js, test-worker-heap-snapshot.js, test-worker-heapdump-failure.js, and 15 more.

Была ли эта страница полезной?