28

誰かが素人の定義とユースケースを提供できますか?

4

2 に答える 2

33

「ブロッキング」とは、呼び出し先が処理を完了するまで呼び出し元が待機することを意味します。たとえば、ソケットからの「ブロッキング読み取り」は、返されるデータがあるまで待機します。「ノンブロッキング」読み取りはそうではなく、何かが読み取られたかどうかの指標 (通常はカウント) を返すだけです。

この用語は主に、CPU の注意を必ずしも必要としないリソース (I/O など) にアクセスする API を中心に耳にします。マルチスレッドでも同じことが言えます。スレッド A からスレッド B への呼び出しは、スレッド B が要求を処理するか、少なくとも要求を受け入れる適切な状態になるまで、「ブロック」する (スレッド A を保持する) ように設計されている可能性があります。(最も明白な例は「結合」です。これは通常、「私、スレッド A は、スレッド B が終了するまで待ちたい」という意味です。マルチスレッド プログラムを終了するときに使用します。)

于 2010-03-09T08:40:07.597 に答える
5

簡単に言えば、ユーザーが何らかのアクション (またはプログラムが制御していない他のアクション) を実行するまでプログラムの実行を停止する関数を呼び出す場合、この呼び出しはブロッキング呼び出しと呼ばれます。

于 2010-03-09T08:40:52.497 に答える