go マップ構造はスレッドセーフですか?
-
22-09-2019 - |
質問
Go マップ タイプのスレッドは安全ですか?マップ型への読み書きを行うゴルーチンが多数あるプログラムがあります。保護メカニズムを実装する必要がある場合、それを行うための最良の方法は何ですか?
解決
あなたはチャンネルをを経由してあなたのマップにゴルーチンと同期アクセスを使用したいと思います。 よくある質問のから解説ます:
長い議論の後、それはマップの典型的な使用がやったことを決定しました 複数のスレッドからの安全なアクセスを必要としない、そしてそれらの例で それがなかった、マップは、おそらくいくつかの大規模なデータ構造の一部であった場所 または、既に同期された計算。したがって、それを必要とします すべてのマップ操作は、ミューテックスがほとんどのプログラムやアドオンが遅くなりつかみます いくつかの安全性。それが意味するので、これは、しかし、簡単な決断ではなかったです 制御されていないマップアクセスは、プログラムがクラッシュすることができます。
言語は、原子マップの更新を妨げるものではありません。必要な場合には、そのよう 信頼できないプログラムをホストする場合、実装はできる限り インターロック・マップ・アクセスます。
所属していません StackOverflow