割り込みと周期的ポーリングについて調べ、ポーリングを待つ必要がない割り込みの利点を学びました。ポーリングは、イベント駆動型プログラミングのように、または少なくともリスナーに似ているように思えました。ポーリングが実際に行うことは、入力または出力をリッスンすることに非常に似ています。同意しますか、それともポーリング (周期的なリッスン) とイベント駆動型プログラミング (いわゆるリスナーによるリッスン) の決定的な違いを誤解していましたか?
2 に答える
いいえ、まったく逆の割り込み駆動型プログラミングは、ハードウェアレベルでのイベント駆動型プログラミングとほぼ同じです。割り込み駆動コードとイベント駆動コードの両方が、コードを実行する前にイベントを待機しますが、ポーリングは、イベントが実際に存在するかどうかにかかわらず、イベントのクエリを試みます。
ただし、割り込みおよびイベント駆動型のプログラムは、通常、ポーリングの形式を使用して下位レベルで実装されることに注意してください。通常はハードウェアで行われますが、何らかのポーリングを必要としない真の割り込みまたはイベント駆動型システムはありません。割り込みの場合、CPU は実際にはクロック サイクルごとに割り込みラインをポーリングします。また、イベント ドリブン プログラミングでも同様に、一時停止したスレッドを再開するには、イベントのソース (通常はドライバー) によって割り込みが発生する必要があるためです。
割り込みおよびイベント駆動型のプログラミングは、実際に自分でポーリングを行うよりも多くの利点がある、規則正しいポーリング方法であると言えます。
ポーリングと割り込み処理は、イベントについて調べる 2 つの方法です。どちらも、着信イベントの処理を中心にプログラムを構築するイベント駆動型プログラミングと矛盾しません。