ポーリング
目的地に着くまで、車の後部座席から「もう着いた?」と1分おきに聞き続けるようなものです。
定義 ポーリングとは、機器やプログラムが「新しいデータや変化はないか?」と、一定の時間間隔で相手に繰り返し問い合わせて確認する仕組みのことです。相手から通知が来なくても、自分から定期的に尋ねることで最新の状態を把握します。
「もう着いた?」「今は?」と何度も確認する
ドライブに出かけたとき、後部座席の子どもが1分おきに「もう着いた?」と聞いてくる場面を思い浮かべてみてください。運転手はそのたびに「まだだよ」と答え続け、ようやく到着したときに「着いたよ!」と教えますよね。
コンピューターやスマートフォンのプログラムも、これとまったく同じやり方で動くことがよくあります。スマホのアプリがサーバーに対し、新しいメッセージや通知が届いていないかを決まった周期で休まず問い合わせるのです。1秒や3秒といった一定の間隔をあけて「新しいデータはある?」と確認し続けます。
このように、特定の装置やプログラムが相手の状態を定期的に見回り確認する通信手法を「ポーリング(Polling)」と呼びます。構造がとても直感的で作りやすいため、電子機器やソフトウェアの黎明期から広く使われてきた基本原理です。
シンプルだけどエネルギーを大量消費
ポーリングは仕組みがとても単純で実装しやすいというメリットがあります。「一定時間ごとに状態を尋ねる」というルールを決めておくだけで、どんな環境でも簡単に動かせるからです。
しかし、何の変化もないときでも同じ質問を繰り返すため、コンピューターの資源や電力を無駄に消費してしまいます。100回尋ねても99回は「何もないよ」という空振りの返答になるわけです。その過程でCPU(頭脳部)やネットワーク回線が無駄に酷使されてしまいます。
また、変化をリアルタイムに察知しにくいという問題もあります。質問と次の質問の合間に重大な変化が起きても、次の問い合わせの番が回ってくるまではその事実を知ることができません。確認間隔を短くしすぎるとバッテリーが猛スピードで減り、間隔を長くすると反応が鈍くなるというジレンマを抱えています。
もう少し正確に言うと:割り込みとプッシュ
もう少し正確に言うと、現代のコンピューターシステムはこうした非効率を減らすために「必要なときだけ教えてもらう方式」を組み合わせて使っています。自分が何度もドアをノックするのではなく、用事があるときに相手がインターホンを鳴らしてくれるような形です。
例えばハードウェアでは、CPUが常に部品を見張る代わりに、マウス操作やキーボード入力があった瞬間だけ信号を送り込む仕組みを使います。これを「割り込み(インタラプト)」と呼びます。
スマホアプリやウェブブラウザでも同様です。チャットアプリがメッセージを待つ際、無暗にサーバーを叩き続けるのではなく、常に通信路を開いておくWebSocketやリアルタイムのプッシュ通知を活用します。おかげで機器はバッテリーを節約しながら、瞬時に新着情報を受け取れるようになっています。
🤔 よくある誤解
ポーリングは非効率なため、現代のコンピューターやウェブでは一切使われていない。
シンプルさと確実性が求められる場面では、今でも大活躍しています。例えばハードウェアセンサーの微細な状態取得や、複雑な通信路を作りにくい組み込み機器、定期的なバッチ処理などでは、ポーリングこそが最も安全で堅実な解決策になります。
🧺 日常で出会う場面
ポーリングとは、新しい情報があるかどうかを一定の周期で自分から繰り返し問い合わせて確認する通信方式のことです。