ブロッキング・非ブロッキングとの違いとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > ブロッキング・非ブロッキングとの違いの意味・解説 

ブロッキング・非ブロッキングとの違い

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/13 02:30 UTC 版)

非同期IO」の記事における「ブロッキング・非ブロッキングとの違い」の解説

非同期I/Oはほぼ必ず非ブロッキングI/O (non-blocking I/O) であるため、非常にしばしば混同されるが、同期 or 非同期と、ブロッキング or 非ブロッキングという分類は、必ずしも一致しないPOSIX環境において、O_NONBLOCKが設定されファイル記述子に対して通常のreadwriteを行うと非ブロッキングになるが、それは「ブロックされるようであればエラーにする」という動作になるのであって非同期になるのではない(たいていのI/O操作OS内のバッファなどによって、同期型のAPIでもブロックすることなく完了できることも多い)。ディスク実際に書き込まれるまでを待つかどうか、という観点での同期非同期もあるが、それはここで扱っているものとは別の話である(詳細文献等の、フラグ O_DSYNC, O_DIRECT についての記述英語版記事 en:Raw device などを参照のこと)。 非同期I/Oとは、 バッファ内容が、カーネル等によってコピーされるか、あるいはプログラマ責任で処理が完了するまで要求元のプロセスがそれを保持しなければならない権限違反など、即座にカーネルエラー等にできる場合除き入出力成否も、入出力要求するシステムコール結果として得られず、コールバックか、別のシステムコール等で改めて得る必要がある上のような制限の下に、入出力要求システムコールブロックせず、最小限の処理ですぐに終了する といったようなスタイル入出力APIによるI/Oである。よって非同期I/O利用されるのは、「時間制約の厳しRTOSだから」といったような理由ではない。排他制御都合などでブロックさせられないとか、あるいは、性能上の理由ではエンタープライズ用途で欲されることもあれば、イベントドリブン型のフレームワークであるために必要であるといった場合もある。別スレッドを使うことで、プロセス内で非同期I/Oのように見せかけるライブラリフレームワーク)といったものもあり得る

※この「ブロッキング・非ブロッキングとの違い」の解説は、「非同期IO」の解説の一部です。
「ブロッキング・非ブロッキングとの違い」を含む「非同期IO」の記事については、「非同期IO」の概要を参照ください。

ウィキペディア小見出し辞書の「ブロッキング・非ブロッキングとの違い」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



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

辞書ショートカット

すべての辞書の索引

「ブロッキング・非ブロッキングとの違い」の関連用語

1
12% |||||

ブロッキング・非ブロッキングとの違いのお隣キーワード
検索ランキング

   

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



ブロッキング・非ブロッキングとの違いのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの非同期IO (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS