はじめに
昨日の飲み会で、あれは非同期処理だからいいんだよね〜みたいな話を聞いた。その時は、知ったかぶりをしたけど、翌日気になって朝からこの記事を書いている。今回、同期処理と非同期処理について軽く調べたのでまとめようと思います。
同期処理・非同期処理
- 同期処理
タスクを一つずつ順番に実行し、一つが終わるまで次のタスクが開始されない処理。 - 非同期処理
タスクの完了を待たずに、次のタスクに進むことができる処理。
同期処理・非同期処理の比較表
| 項目 | 同期処理 (Synchronous) | 非同期処理 (Asynchronous) |
|---|---|---|
| リソース効率 | 待ち時間中はCPUなどのリソースが遊んでしまい、効率が悪い | 待ち時間中に別の処理を実行できるため、リソースを有効活用できる |
| ユーザー体験 | 時間のかかる処理で、画面が固まる(フリーズする)など応答性が悪化しやすい | 時間のかかる処理があっても、応答性が保たれ、ユーザーは操作を続けられる |
| コードの書き方 | 処理の順序が明確で、コードが直感的で分かりやすい | 処理の順序が複雑になりがちで、慣れないうちは理解が難しいことがある |
| 主な用途 | ・処理の順序が絶対的に重要な場合 ・単純なスクリプト ・CPUバウンドな(計算中心の)短い処理 |
・I/O処理 ・GUIアプリケーションのイベント処理 ・Webサーバーなど多数のアクセスを捌くシステム |
終わりに
単純なことしか調べていないが、こういった積み重ねがエンジニアとしての知識を深める大事な行動だと思っている。わからないことがあったらその都度、調べたり質問する。これを怠らなければきっと良い
