グローバル変数を使うかどうかとか
複数の状態を同時に実行できない問題をどうするかとかは別として
自分なら2の方向かなあ