プログラミングには同期処理と非同期処理があります。
同期処理も非同期処理もメリットとデメリットがあるので、同期処理と非同期処理の特徴を知っておくことはプログラミングをする時は大切です。
同期処理と非同期処理の違いを理解するポイントは複数の処理を実行する順番です!
まずは、同期処理から紹介していきます!
同期処理とは?
同期処理はプログラミングで書いた順序で処理が実行されます。
プログラミングで書いた順序の通りに処理が実行されるので、処理がわかりやすいことがメリットです。
複数の処理を実行する時に重たい処理が間に挟まっていると、処理の実行が止まってしまいます。
Webサービスで重たい処理を同期処理で実行していると画面が止まってしまい、ユーザーはWebサービスが故障したのかなと思ってしまいます。
同期処理の実行イメージ
処理1、処理2の順番で処理が実行されていることがわかります!
重たい処理を同期処理した実行イメージ
処理2で重たい処理をした時は処理2の実行がおわるまで「くまなつ」は他の処理をおこなうことができないです。
非同期処理とは?
非同期処理は前の処理が完了する前に次の処理を実行することができます。
処理1、処理2を実行する時に処理1の完了を待たずに処理2を実行することができます。
これによって重たい処理が間にはさまった時も、別の処理を実行することができます。
重たい処理を非同期処理した実行イメージ
処理2で重たい処理があっても、途中で別の処理をおこなうことができます。
重たい処理を実行する時は、処理1の段階で処理1の実行は完了したことをユーザーに通知するようにする場合もあります。
非同期処理の実装方法
非同期処理の実装方法はプログラミング言語によって様々あります。
JavaScriptの非同期処理
- コールバック
- Promise
- async/await
Rails 非同期処理
- Sidekiq
- resque
- delayed_job
どの方法もコツを掴めば簡単に非同期処理を行うことができます。
ブログでそれぞれの実装方法や実装する時に注意点を解説しているので、詳しく知りたい方は記事を読んでください!
まとめ
この記事では同期処理と非同期処理について解説してきました。
同期処理は処理を順番に実行する方法でした。
非同期処理は前の処理の完了を待たずに、次の処理を実行できる方法でした。
重たい処理を実装する時は非同期処理で実装して、処理をスムーズに実行できるようにしましょう!