遅刻してしまいましたが、Lua Advent Calendar 6日目書きます。 その拡張性と実行速度からしばしばゲーム開発において用いられます。 その中でも特に強力な機能としてコルーチンがあります。 コルーチンとは 強調的マルチスレッドとも呼ばれます。 マルチスレッドはここであえて説明する必要はないとは思いますが、処理をスレッドという単位にわけ平行で実行し、パフォーマンスを向上させるというものです。 マルチスレッドでは実行するスレッドの切り替えを自動で行うのに対し、コルーチンは手動で切り替えを行います。 明示的にスレッドの切り替えを行わない限り他のスレッドの処理が割り込むことはありません。 どういうときに使うのか パフォーマンス向上目的というよりは、非同期処理をシンプルに書くために使われることが多いかと思います。 たとえばこういうケースです。 保存ダイアログを表示する 保存ダイアログのO