Sync/ASyncとBlock/NA-Blocking

5751 ワード

*🔐Study Keyword :


同期/非同期🔑データ・ブロック/非データ・ブロックについて

1. Blocking / Non-Blocking

  • Block:ある行為によって自身の行為が継続できないか、阻止される.
  • Non-Block:いかなる行為にもこだわらず自分の行為を実行する.
  • 2. Sync / Async

  • プログラミングにおける同期は同時に発生し、これは要求関数と応答関数との間でデータ同期を行うことを意味する.
  • タスクの単位(Transaction)同期はSync、非同期はAsyncです.
  • 動機および閉塞/非同期および非閉塞は同じ概念のように見えるが、両者の意味は視角によって異なる.
  • BlockとNon-Blockの基準は、どちらが制御権を持つかに分けられます.
    SychronousとAsynchronousは,戻り動作の影響を受けるかどうかに分けられる.
    Block/No-Blockingについて議論する場合、制御権を議論し、コアとして制御できないオブジェクトとして2つのキーワードを返す処理方法を意味する.

    - Blocking

  • blockingとは、直接制御できないオブジェクトの操作が完了するまで制御権を渡さず、制御権は行動可能な権利を意味する.
  • EX>呼び出した関数がIOを要求すると、IO処理が完了するまで待機し、何もしなかった.
  • function 호출자 (){
      // 1. 호출자 함수가 처음에 제어권을 갖고 있다.
      function A()
      // 2. A 함수를 호출하면 제어권을 A에게 넘긴다.
      // 4. A의 리턴값과 함께 제어권을 넘겨받은 호출자는 그제서야 함수 B를 실행할 수 있게 된다.
      function B()
      function C()
    }
    function A(){
      /*엄청난 로직*/
      // 3. 제어권을 넘겨 받은 A는 안에서 로직을 처리한 뒤 리턴하면 값과 함께 제어권을 다시 넘긴다.
      return Sth;
    }
  • 呼び出し関数がA関数を呼び出した瞬間、呼び出し者がA関数がタスクを完了しなかったり、異常が発生したりした場合、呼び出し者は残りのタスクを実行できません.
  • 、すなわち、発呼者に対する権限は、発呼A(直接制御できない対象)と同時に、制御権を超えている.
  • - Non-Blocking

  • Blockingとは逆の概念で、直接制御できないオブジェクトがタスクを処理するかどうかは関係ありません.
  • EX>呼び出した関数がIOを要求すると、IO処理が完了するかどうかにかかわらず、すぐに自分のタスクを実行できます.
  • function 호출자 (){
      // 1. 역시 호출자 함수가 처음엔 제어권을 갖고 있다.
      function A()
      // 2_1. A 함수를 호출하면 제어권을 A에게 넘겼다가 바로 다시 호출자에게 돌아온다.
      // 2_3. A의 리턴을 기다리지 않고 호출자 함수는 그대로 B를 C를 이어서 실행한다.
      function B()
      function C()
    }
    function A(){
      /*엄청난 로직*/
      // 2_2. 호출받은 A는 제어권없이 그래도 로직을 처리하고 리턴한다.
      // 3. 그렇다면 함수 A의 결과값은 어떻게 된걸까?
      return Sth;
    }
  • が制御不能な関数を呼び出すと、制御権は呼び出し元に移行する.
  • - Synchronous


    動機。

  • 同期は、データベースの同期に対して、2つの異なるデータベース内のリポジトリ内のデータを同じ時間に整列させることを意味するデータベース同期を生成します.
  • 、すなわち同期とは、同じ時間にデータを同じ時間に調整することを意味する.
  • Synchronousは一緒の時間の総和であり、制御権の返却時間と結果値の伝達時間が一致していることを意味する.
  • 単純なSyncは、1>関数Aが終了すると、関数Bが実行され、Aの終了はBの開始と時間と一致し、2>関数の開始と終了は同じであることを示す.
  • - Asynchronous


  • 不定式の意味を持つAのサブ同期で、非同期は1>関数AとBが実行され、終了時間が異なり、2>結果値も伝達されないが、制御権を返す場合を意味する.
  • 非ブロッキングと同期にとって,観察の観点が重要である。

  • 同期/非同期およびデータブロック/非データブロックは、完全に異なる概念で独立して見なければならない.
    ブロック/論ブロックは制御権に関する物語であり,同期/非同期は戻り時間,タイミングに関する物語である.
  • すなわちblockg/Non-blockingは、誰が制御権を持ち、いつ制御権を返還するかについての物語であり、制御権が制御できないオブジェクトをどのように処理するかについての概念である.
  • とは逆に、Sync/Async制御権が返される時間、結果値が渡される時間、またはある関数が終了した後、次の関数が開始する時間が一致するか否かについての概念である.
  • *💡conclusion


    Synchronous VS Asynchronous

  • は、2つ以上のターゲット(方法、操作、処理など)を処理時間に分割する.
    Synchronous:呼び出し関数の戻り時間は、結果を返す時間と一致します.
    Asynchronous:呼び出し関数の戻り時間が戻り結果の時間と一致しない場合、
  • Blocking VS Non-Blocking


    呼び出し
  • のターゲットが直接制御できない場合は、それらを区別します.
    Block:直接制御できないターゲットの完了操作を待つ必要がある場合
    ブロックなし:
  • 、直接制御できないターゲットが操作を完了する前に制御権を譲渡する場合

    #📑Study Source

  • https://velog.io/@codemcd/Sync-VS-Async-Blocking-VS-Non-Blocking-sak6d01fhx
  • https://dip0cean.tistory.com/61