チャンネルがGoプログラムのコーディングの一部として使用できるほど効率的かどうか疑問に思っています。
質問する
2009 次
3 に答える
8
Go のチャネルは関数ではなく、プリミティブ型であり、いわゆる言語の第一級市民です。
セマフォ (ミューテックスとも呼ばれる) とは対照的に、チャネルは、正しく使用すると同時アクセスを非常に効率的にシリアル化できるため、強く推奨されます。
Go は確かに、解釈された動的言語よりも優れたパフォーマンスを発揮し、多くのコンパイル済み言語よりもはるかに優れた並行性を処理します。ロケット コントローラなどのように、Go が適切でないユースケースがまだいくつかありますが、通常の現実世界のアプリケーションでは、Go は確かに最速で最も柔軟な言語の 1 つです。
于 2012-09-24T07:47:05.137 に答える
3
一般的に言って、はい、チャネルは高速ですが、プログラムを知らずにそれを使用する必要があるかどうかはわかりません。この部分は建設的ではないと思います。
実装に関しては、Goをソースとともにインストールすると利用可能になります。で例を探しsrc/pkg/runtime/chan.c
ます。
ほとんどのGo並行プログラムはチャネルに依存しています。Goでコーディングして並行タスクを実行する場合は、ほとんど選択の余地がないと思います。チャネルとプロファイルを使用して、チャネルに関連する問題があるかどうかを確認します。
于 2012-09-24T06:25:29.007 に答える