Golang-ゴルーチン/チャンネル

goroutine-基本的な紹介

プロセスとスレッドの紹介

    

 

 

プログラム、プロセス、スレッド間の関係の概略図

    

並行性と並列性

  1)マルチスレッドプログラムは単一のコア上で同時に
  実行されます2)マルチスレッドプログラムは複数のコア上で実行されます(並行して実行されます
  )3)回路図:

     

    要約:

    

 

 

 

コルーチンに行き、メインスレッドに行く

    Goメインスレッド(一部のプログラマーはスレッドと直接呼びます/プロセスとしても理解できます):Goスレッドは複数のコルーチンを持つことができます。コルーチンは軽量スレッドであるため、これを理解できます[コンパイラーは最適化を行います] 。

Goコルーチンの機能
    1)独立したスタックスペース
    2)共有プログラムヒープスペース
    3)スケジューリングはユーザーによって制御されます
    4)コルーチンは軽量スレッドです

    概略図

      

 

 

   

goroutine-クイックスタート
   ケースの説明
    次の機能を完了するためのプログラムを記述してください:
    1)メインスレッド(プロセスとして理解できます)で、goroutineを開始します。コルーチンは1秒ごとに「hello、world」を出力します
    2)メインでまた、スレッドは毎秒「hello、golang」を出力します。10回出力した後、プログラムを終了します
    。3)メインスレッドとgoroutineを同時に実行する必要があります
    。4)メインスレッドとコルーチン実行フローチャートを描画します。

    

 

 

     出力の効果は、メインスレッドmainとテストコルーチンが同時に実行されることを示しています。

    

 

 

メインスレッドとコルーチン実行フローチャート

  

 

 

 

クイックスタートの概要
  1)メインスレッドは、CPUに直接作用する物理スレッドです。それはヘビー級であり、CPUリソースを非常に消費します。
  2)メインスレッドから開始されたコルーチンは軽量スレッドであり、論理的な状態です。リソース消費量は比較的少ないです。
  3)Golangのコルーチンメカニズムは重要な機能であり、何万ものコルーチンを簡単に開くことができます。他のプログラミング言語の同時実行メカニズムは一般にスレッドベースです。開かれているスレッドが多すぎるため、多くのリソースが消費されます。ここでは、同時実行におけるGolangの利点が強調されています。


goroutineスケジューリングモデルの
  MPGモデルの基本的な紹介

  

 

   MPGモードの動作ステータス1

  

 

   MPGモードの動作ステータス2

  

 

おすすめ

転載: www.cnblogs.com/Essaycode/p/12729240.html