Go FAQ には「Goroutine ID がありません」と表示されますが、runtime.Stack から取得できます。それは何ですか?

WBOY
リリース: 2024-02-05 22:51:03
転載
603 人が閲覧しました

Go常见问题解答说“没有goroutine ID”,但我们可以从runtime.Stack中获取它。它是什么?

質問内容

go faq で「Goroutine ID がないのはなぜですか?」という質問に回答しました。

リーリー

runtime.stack() を使用して goroutine ID を取得できるように見えるため、「一意の識別子は公開されない」という説明は信じられません。

######質問######

go faq 回答の「一意の識別子」と runtime.stack によって抽出された goroutine ID の違いは何ですか?
  1. go faq の回答が「一意の識別子を公開しない」のはなぜですか?
  2. 「なぜ goroutine ID がないのか?」の答えを明確に理解したいです。

  3. runtime.stack() は goroutine ID を提供するようです。 https://go.dev/play/p/5b6fd7c8s6-
リーリー

また、ebpf を通じて goroutine ID を取得する別の方法もあります。

ebpf を使用して goroutine id を取得する方法

正解


Go FAQ の「一意の識別子」とランタイムによって抽出された goroutine id とは何ですか。違い?

FAQ には、ゴルーチンは
一意の識別子、名前、またはデータ構造をプログラマに公開しないと記載されています。

ランタイムには Goroutine を識別する方法が必要ですが、その識別子を取得する方法はサポートされていません。

Go ドキュメントでは、runtime.Stack によって返されるスタック トレースの形式やゴルーチン番号の意味が指定されていません。質問内のコードは現在一意の ID を取得する可能性がありますが、将来的にコードが取得するという保証はありません。

以上がGo FAQ には「Goroutine ID がありません」と表示されますが、runtime.Stack から取得できます。それは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート