inflearn logo
inflearn logo

[図に理解する] 同期(sync) 非同期(async)の概念の最も直感的な理解

非常に簡単に同期非同期の概念を理解できる19分程度の講義です。

難易度 初級

受講期間 無制限

sync
sync
async
async
sync
sync
async
async
Thumbnail
allen님의 프로필 이미지

追加のBlocking / Non-Blockingの概念について

こんにちは!アランです。

私は短い講義を作ってみましたが、たくさん助けていたのか分からないですね!それでも役に立ったといい受講評を残してくださった方が多いので、授業を作ってみてよかったとたくさん感じています。 ^^

相違ではない、時々同期非同期概念以外に、

Blocking / Non-Blockingの概念は何ですか?こういう質問が上がってきて。

私が授業内容を通してお話した同期/非同期概念を先に習うことが当然優先だと思います。言語によっては、Blocking / Non-Blockingの概念が使われていない言語もあるので、これらの部分は勉強する言語にその内容が存在する概念かどうかを最初に見てみる必要があるようです。 ^^

はい、とにかくBlocking / Non-Blockingの概念が使われる言語なら、以下の内容を参考にしてみると良いと思います。


▶︎ Blocking / Non-Blocking
呼び出される関数がすぐに返されるかどうかが重要な概念

1) Blocking - すぐに返さない(仕事を妨げる)

2) Non-Blocking - 即時戻り



▶︎同期/非同期は、作業完了かどうかを呼び出した関数が気になるのか、呼び出された関数(callback)が気にするのか?

1) 同期- 呼び出した関数が作業完了

2)非同期 - 呼び出された関数(callback関数)が作業完了


(ただし、このような概念が合わせてBlocking&Asyncはどうせ他のことができないのでわざわざ使用することはないという。)



そして一般的に、Blocking / Non-Blockingの概念が使われていない言語では、私がクラスで話したように


同期はBlockingと結合された概念で、非同期はNon-Blockingと結合された概念と考えれば楽です。

そして、もしかしたら他の方が書いてとても上手に書いておいた資料があり、リンクもつけます。^^

https://homoefficio.github.io/2017/02/19/Blocking-NonBlocking-Synchronous-Asynchronous/

https://siyoon210.tistory.com/147


ありがとうございます。 :)

コメント 1
    marihwang님의 프로필 이미지

    こんにちは。 https://siyoon210.tistory.com/147 このブログの説明が本文の説明と矛盾する点が少しあります。 一度見て、検証していただけますか? 特にブログのシナリオ2(Sync + Non Blocking)で社員1の仕事が終わるまでチーム長が別のことをすることができないと言いましたが、アラン様が書いてくれた本文では表示されたまさに他のことができるようです。 私の考えでは、シナリオ2で社員1、社員2、社員3に一度に仕事をさせた後、チーム長はまた別のことをしながら定期的に社員1、社員2、社員3の仕事が終わったことを確認すれば良いと思います。 。

無料