「ノンブロッキングI/O」と「ブロッキングI/O」の違い
スポンサーリンク
予備知識
| 用語 | 意味 |
|---|---|
| ノンブロッキング | 「○○している最中も処理は進むけど、○○が終わらないとできない処理になったら待ってるよ~」のこと |
| ブロッキング | 「○○している最中は他の処理をしないで待ってるよ~」のこと |
| I/O | 「入れる」と「出す」を、まとめた表現。今回は「入出力処理」とか「入出力処理をする部品」の意味 |
例えば、そうですね。
ピヨ太君が
1.洗濯
2.掃除
3.アイロンがけ
の3つの家事をやるとしましょう。
洗濯している間も他の家事をやり、洗濯が終わらないとできない家事になったら洗濯が終わるまで待つのがノンブロッキングです。

洗濯している間は、ぼーっと待っていて、洗濯が終わったら家事を再開するのがブロッキングです。

それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| ノンブロッキングI/O | 入出力をやっている最中も他の処理を並行して進められるI/O |
| ブロッキングI/O | 入出力をやっている最中は他の処理を進めないで入出力が終わるのを待ってるI/O |
似ているところ
どちらもI/Oです。

違うところ
ブロックするかしないかの違いです。

もう少し具体的に書くと、I/O中に他の処理をやるかやらないかの違いです。
ノンブロッキングI/Oは、入出力中も他の処理を進めます。
ブロッキングI/Oは、入出力中は「ぼー(--)」っとしています。






