ファイバー_(コンピュータ)とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > ファイバー_(コンピュータ)の意味・解説 

ファイバー (コンピュータ)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/09/24 00:45 UTC 版)

ファイバー: fiber)は、計算機科学の分野において、非常に軽量な実行スレッドを示す。

ファイバー同士はスレッドと同じくアドレス空間を共有するが、ファイバーが協調マルチタスクを使用するのに対し、スレッドはプリエンプティブマルチタスクを用いる。スレッドでは、ビジーなスレッドに割り込み他のスレッドを復帰させるためにカーネルのスレッドスケジューラを用いることが多いが、ファイバーは他のスレッドを実行させるために自ら制御を譲る。

ファイバーとコルーチン

ファイバーはコルーチンと本質的には同じ概念である。違いは、もしあるとすればコルーチンが言語レベルの構造で、制御の流れの形態の一つであるのに対し、ファイバーはシステムレベルの構造であり、並行に動作しないスレッドと捉えられる点である。どちらに近いか異論はあろうが、ファイバーはコルーチンの実装か[1]、あるいは、コルーチンを実装するための基盤と捉えることができるかもしれない[2]

利点と欠点

ファイバーのマルチタスクは協調的であるため、スレッドセーフネスはプリエンプティブにスケジュールされるスレッドと比べて問題となりにくく、また暗黙のうちに同期が行われているためスピンロックなどの同期の機構や、アトミックな操作は不要である。 しかし、ノンブロッキング I/Oを行う際暗黙のうちに処理を譲るライブラリが多く、十分な注意とドキュメントの熟読が推奨される。

欠点としては、ファイバーはプリエンプティブなスレッドを用いない限りマルチプロセッシングの機構を活用できない点がある。しかし、CPU コア数以下のプリエンプティブスレッドを用いた N:M スレッドモデルでは、純粋なファイバーやプリエンプティブなスレッドより効率的である。

オペレーティングシステムのサポート

スレッドに比べて、オペレーティングシステムがファイバーをサポートするために必要なことはわずかでよい。ファイバーは現代的なUnixシステム上では、GNU Portable Threadsが行っているように ucontext.h で定義されたgetcontext, setcontext, swapcontext 関数を用いて実現できる。

Microsoft Windows では、ファイバーはWindows API関数である ConvertThreadToFiber() あるいは CreateFiber() の呼び出しで作成することができる。一時停止したファイバーはどのスレッドでも復帰させることができる。変数のファイバー固有のコピーを作成するために、スレッド局所記憶に類似したファイバー局所記憶 (fiber local storage) を使用することができる[3]

JavaScript でのサポート

JavaScript は元々はシングルスレッドで動作させる設計になっていたが、HTML5 より、アドレス空間を共有しない、Web Workers が追加になった。それらとは別に、Node.js では、アドレス空間を共有するが、協調マルチタスクな設計となっているファイバーが fibers パッケージ[4]にて提供されている。

脚注

関連項目

外部リンク


「ファイバー (コンピュータ)」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ファイバー_(コンピュータ)」の関連用語

ファイバー_(コンピュータ)のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ファイバー_(コンピュータ)のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのファイバー (コンピュータ) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS