TL;DR

ユーザの操作などで起きるイベントによって、コンピュータが実行する処理とプログラムの流れが決まるプログラミングパラダイム。

ユーザー側の操作による受動的なイベントの発生によって、コンピュータ側の能動的なプロセスの実行とプログラムフローの選択が決定されるというプログラミングパラダイム

なぜ必要か

Wikipedia によると、GUI を持つソフトウェアで多く使われ、ユーザの入力に応える処理を実装するのに向いている。イベントを待ち受ける仕組みはフレームワークが受け持つので、開発者は必要なイベントハンドラだけを書けばよく、記述量が減る。処理がハンドラごとに分かれるので、プログラムの見通しも良くなる。

仕組み

イベントとは、マウスのクリックやキー入力、センサーからの入力、他のスレッドからのメッセージの受信などを指す。イベントループがイベントを待ち続け、発生したイベントをイベントディスパッチャが対応するイベントハンドラ(イベントリスナ)に振り分ける。イベントが続けて発生してハンドラの処理が間に合わないときは、イベントキューに溜めておく。

例

GUI を持つ OS やアプリケーション、デバイスドライバ、Web アプリケーションの非同期処理などで使われる。

関連

出典