Capítulo 627 de 859

Chapter 627: WorkerPool

Core Idea

A simple pool for managing Web Workers.

Key Concepts

  • pool : number: The size of the pool.
  • queue : Array.<Object>: A message queue.
  • workerCreator : function: A factory function for creating workers.
  • workerStatus : number: The current worker status.
  • workers : Array.<Worker>: An array of Workers.
  • workersResolve : Array.<function()>: An array with resolve functions for messages.

Code Examples

import { WorkerPool } from 'three/addons/utils/WorkerPool.js';
  • What it demonstrates: Typical usage of WorkerPool.

Reference Tables

Constructor

Signature
new WorkerPool( pool : number )

Properties

PropertyDescription
.pool : numberThe size of the pool.
.queue : Array.<Object>A message queue.
.workerCreator : functionA factory function for creating workers.
.workerStatus : numberThe current worker status.
.workers : Array.<Worker>An array of Workers.
.workersResolve : Array.<function()>An array with resolve functions for messages.

Methods

MethodDescription
.dispose()Terminates all Workers of this pool. Call this method whenever this Worker pool is no longer used in your app.
.postMessage( msg : Object, transfer : Array.<ArrayBuffer> ) : PromisePost a message to an idle Worker. If no Worker is available, the message is pushed into a message queue for later processing.
.setWorkerCreator( workerCreator : function )Sets a function that is responsible for creating Workers.
.setWorkerLimit( pool : number )Sets the Worker limit

Key Takeaways

  1. Most relevant properties: pool, queue, workerCreator, workerStatus.
  2. Key methods: dispose, postMessage, setWorkerCreator, setWorkerLimit.

Connects To