ブロッキング、ノンブロッキング、同期、非同期の違い

4つの意味について分からなかったので調べたら、ざっくり以下のような意味らしい。(もしかしたら違ってるかもなのでその場合はご指摘おねがいします・・!)

  • ブロッキング・・・
    待ちの処理が発生した場合は待つ。その処理を待ってから次の処理にいく。
    (例:Aで待ちが発生したら、Aを処理してからBにいく)
  • ノンブロッキング・・・
    待ちの処理が発生した場合は待たずに、他の処理をおこなう。その処理から通知がくることはないのでその処理が終わってるかどうかは自分で確認しないといけない。
    (例:Aで待ちが発生したら、Aを待たずにBにいく。Aが完了しているかどうかは自分で確認しにいく。)
  • 同期・・・
    待ちの処理が発生した場合は待つ。その処理を待ってから次の処理にいく。
    (例:Aで待ちが発生したら、Aを処理してからBにいく)
  • 非同期・・・
    待ちの処理が発生した場合は待ってる間に、他の処理をおこなう。その処理から終わったら通知がくるので通知がきたら待ち終了。
    (例:Aで待ちが発生したら、Aから完了通知がくるのを待ってる間にBにいく)

要するに、ブロッキングと同期はほとんど同じ意味らしい。

そして非同期とノンブロッキングは意味は似てるけど微妙に違う。待つか待たないかの違いがあるらしい。

Node.js
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。WEBエンジニア。

技術スタック:TypeScript/Next.js/Express/Docker/AWS

フォローする
フォローする

コメント

タイトルとURLをコピーしました