···11import { Worker } from 'node:worker_threads';
22+import { availableParallelism } from 'node:os';
23import { setupWorker, execute } from './execute.ts';
34import type { Task } from './task.ts';
45import type { Runner } from './runner.ts';
···7889/**
910 * Creates a pool of worker threads that dispatch tasks with round-robin scheduling.
1010- * @param size - Number of worker threads in the pool.
1111+ * @param size - Number of worker threads in the pool. Defaults to the number of available CPUs.
1112 * @returns A disposable {@link Runner} for dispatching tasks.
1213 */
1313-export function workers(size: number): Runner {
1414+export function workers(size: number = availableParallelism()): Runner {
1415 const pool: Worker[] = [];
1516 for (let i = 0; i < size; i++) {
1617 const worker = new Worker(workerEntryUrl);