ホームページ >バックエンド開発 >Golang >Golang crypto/rand スレッドは安全ですか?

Golang crypto/rand スレッドは安全ですか?

王林
王林転載
2024-02-09 12:45:081012ブラウズ

Golang 加密/兰德线程安全吗?

Golang は、その効率性と同時実行性で知られるプログラミング言語です。ただし、Golang の暗号化とスレッドの安全性は常に開発者の焦点でした。この記事では、php エディターの Banana が、Golang 暗号化と Golang スレッド セーフについていくつかの意見と提案を共有します。開発者が Golang をよりよく理解して適用できるように、Golang の暗号化機能とスレッドの安全性を確保する方法を検討します。初心者でも経験豊富な開発者でも、この記事は貴重な情報とガイダンスを提供します。

質問内容

math/rand.rand のソースには、read はスレッドセーフではないと記載されています (ソース共有時)。仮想通貨/ランドはどうですか?ソース コードには、getrandom(2) または /dev/urandom を使用していると記載されていますが、同時呼び出しで何が起こるかは不明です。

更新: コメントは違いを明確にするのに役立ちます

リーリー

スレッドの安全性:

  1. 同時呼び出しreadパニックになりますか?
  2. 同時に呼び出された場合、ランダムな順序は維持されますか?それとも、重複したコンテンツを同時呼び出し者に提供できますか?
  3. #########解決######

rand.Reader

    (
  1. crypto/rand から) 「グローバル暗号的に安全な乱数生成器」共有インスタンスとして定義されているため、同時アクセスに対して安全でなければなりません」。パッケージ間でその使用状況を同期する方法はありません。 crypto/rand
  2. rand.Read
  3. は安全です。rand.Reader は安全であり、他の共有にはアクセスしないためです。状態。

以上がGolang crypto/rand スレッドは安全ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。