同時実行性を追加すると Go コードが遅くなる理由
質問:
一見適切であるにもかかわらず、並列化、同時実行の追加により、Go コードが大幅に遅くなる可能性があります。これはなぜですか?
答え:
この問題は、ミューテックス ロックを持つ共有グローバル オブジェクトを利用する rand.Float64() 関数の使用から発生します。このロックにより、乱数ジェネレーターへのアクセスがシリアル化され、コードを同時に実行しようとするときのパフォーマンスが妨げられます。
解決策:
この問題に対処するには、別のインスタンスを作成します。各ゴルーチンの rand.Rand 構造体。そうすることで、各ゴルーチンには独自の乱数ジェネレーターがあり、ミューテックス ロックの必要性がなくなり、パフォーマンスが大幅に向上します。
以上が同時実行性を追加すると、「rand.Float64()」を使用した Go コードが遅くなる場合があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。