انتقل إلى المحتوى

مرجع واجهة ⁦node:worker_threads⁩

واجهة التوافق مع خيوط العمل والمراسلة

في هذه الصفحة

يتضمن نطاق الأسماء ⁦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⁩ سقفًا لعدد العمال الذين يمكن للسكربت بدؤهم؛ راجع عزل نظام الملفات.

للقنوات ضمن النطاق نفسه، راجع مراسلة الويب.

انظر أيضًا

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.

هل كانت هذه الصفحة مفيدة؟