Перейти до вмісту

Довідник 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.

Чи була ця сторінка корисною?