同期処理と非同期処理について①
非同期処理について
まず最初に、簡潔に、結論を言っていくと
処理を一度バックグラウンドに移すことで、あるタスクを実行している最中でも
その処理を止めることなく、別のタスクを実行できる方式のこと。
詳しく見ていくと…まずは…
同期処理と非同期処理とは
<同期処理>
複数のタスクを実行する際に、上から一つずつ順番にタスクが実行される方式。
- merit:全体を把握しやすい
- demerit:処理完了までに時間がかかり、ユーザーにとってはストレス
<非同期処理>
処理を一度バックグラウンドに移すことで、あるタスクを実行している最中でも
その処理を止めることなく、別のタスクを実行できる方式
→これを実現するのが、コールバック、Promise , async/awaitで
jsにおいてはajaxと言う技術もある。
(次回、詳しく解説)
- merit:全体の処理速度を速められる
- demerit:プログラムの全体像が複雑になりやすい
<同期処理と非同期処理の比較>
<同期処理と非同期処理の比較>
~比較~ | 同期処理 | 非同期処理 |
---|---|---|
merit | 全体を把握しやすい | 全体の処理速度を速められる |
demerit | 処理完了までに時間がかかり、ユーザーにとってはストレス | プログラムの全体像が複雑になりやすい |
使用場面 | 処理結果を待つ必要があるもの | 処理結果を待たなくても良いもの、処理結果がなくても進められるもの |
⚠️非同期処理と並行処理の違い⚠️
並行処理=文字どおり複数の処理を同時進行で行うこと。
⚠️非同期処理と並行処理の違い⚠️
並行処理=文字どおり複数の処理を同時進行で行うこと。
非同期処理は処理を止めることなく実行できるというだけ
同期処理と非同期処理をもっとわかりやすく例えると…
(下手なイラストだけども描いてみたよ。)
<同期処理タイプのホールスタッフのレストラン>
1番テーブルのオーダー取ったら、キッチンにオーダーを伝えにいく。
料理が出来上がるまでこのスタッフはキッチンの前から動かない。
2番テーブルから呼ばれても、聞こえていないタイプ。笑
1番テーブルの料理を運び終わってから2番テーブルへ行く。
<非同期処理タイプのホールスタッフがいるレストラン>
1番テーブルのオーダーをとって、キッチンに伝えに行く。
戻ってきて2、3番テーブルからもオーダーをとって、またキッチンに伝えに行く。
料理ができたら逐一運ぶ!!
このような感じ!!
なぜ非同期処理が必要なのか
ズバリ一言。
”快適な操作性を確保するため”
同期処理だと、等り上からプログラムを実行していくため、
ある一つの処理が終了するまで次の処理を行えない。これは効率が悪いため。
今日はここまで!
次回は、コールバック、Promise , async/awaitについて記述していきます。
"技術は何かの課題をクリアするために生まれている"
なんでこの技術があるのか、わかってくると理解もいい方に変わってくるよね??
アウトプットを始めてから1ヶ月があっという間に経っていたみたいです。
継続は力なり。ではあるが「継続は力なり」の一歩先に思考が働いているか?
継続に伴って、結果も大事よね💟
では、おやすみなさい💫
Discussion
すごい、理解やすいイラストです〜
非同期と同期の比較Tableとかあったらもっと良さそうですww
それぞれ使う状況が違うので、どのとき何を使ったらいいのかもわかりやすく見えそうですね〜
アドバイスありがとうございます!!修正致します!