ファイバー (コンピュータ)
JavaScript は元々はシングルスレッドで動作させる設計になっていたが、HTML5 より、アドレス空間を共有しない、Web Workers が追加になった。それらとは別に、Node.js では、アドレス空間を共有するが、協調マルチタスクな設計となっているファイバーが fibers パッケージにて提供されている。
ファイバーのマルチタスクは協調的であるため、スレッドセーフネスはプリエンプティブにスケジュールされるスレッドと比べて問題となりにくく、また暗黙のうちに同期が行われているためスピンロックなどの同期の機構や、アトミックな操作は不要である。 しかし、ノンブロッキング I/Oを行う際暗黙のうちに処理を譲るライブラリが多く、十分な注意とドキュメントの熟読が推奨される。
欠点としては、ファイバーはプリエンプティブなスレッドを用いない限りマルチプロセッシングの機構を活用できない点がある。しかし、CPU コア数以下のプリエンプティブスレッドを用いた N:M スレッドモデルでは、純粋なファイバーやプリエンプティブなスレッドより効率的である。