同時に処理するとはどういうことか
システムの説明でよく出てくる言葉に、
「同時に処理している」「同時アクセスがある」という表現があります。
しかし、この「同時」とは何を指しているのかが、
曖昧なまま使われていることも少なくありません。
結論から言うと、
同時に処理するとは「複数の処理要求を、互いに影響しないように扱うこと」です。
本当に同時に動いているのか
「同時」と聞くと、
すべての処理が完全に同じ瞬間に動いているように感じるかもしれません。
しかし実際には、
- 処理を細かく切り替えて実行している
- 順番を高速に入れ替えている
といった形で、
見かけ上同時に動いている場合も多くあります。
重要なのは、
「同時に見えること」ではなく、
結果が正しく保たれることです。
なぜ同時処理が問題になるのか
同時に複数の処理が走ると、次のような問題が起きます。
- 同じデータを同時に更新する
- 途中の状態を別の処理が参照する
- 処理の順番によって結果が変わる
これらは、
データの不整合や不具合の原因になります。
同時処理を成立させるための考え方
同時処理を安全に行うためには、次の考え方が必要です。
- 処理の区切りを明確にする
- 他の処理と影響しない範囲を決める
- 必要に応じて待たせる
これらを支える仕組みとして、
前回扱った トランザクション があります。
データベースと同時処理
データベースは、
同時に複数の処理がアクセスすることを前提に設計されています。
- 同じデータを同時に書き換えない
- 読み取りと書き込みを整理する
- 矛盾した状態を見せない
こうした制御によって、
「同時に使っても壊れない」状態を保ちます。
処理側が考えるべきこと
同時処理を意識する上で重要なのは、
すべてをデータベース任せにしないことです。
処理側では、
- どこまでを1つの操作とするか
- 同時実行されたら困る処理はどれか
を意識して設計する必要があります。
同時処理は「速さ」の話ではない
同時処理というと、
「速くするための技術」と思われがちです。
しかし本質は、
正しさを保ったまま複数の処理を扱うことです。
速さは結果であって、目的ではありません。
まとめ
同時に処理するとは、
- 複数の処理要求を同時に受け付けること
- それぞれが正しい結果になるよう制御すること
- データの整合性を守るための考え方
です。
この理解があると、
次に学ぶ
通信・ネットワークの仕組み
が、より現実的な問題として見えてきます。


コメント