1
私は同時アクセスで安全なマップを作成しました。それぞれの操作(または複合操作)で、操作をロックでラップしました。並行安全マップ、ロックまたはゴルーチンを作成していますか?
func .. {
mu.Lock()
defer mu.Unlock()
..
}
私はこれにもゴルーチンを使用できますか?私はgoroutinesを使うべきですか?
私は同時アクセスで安全なマップを作成しました。それぞれの操作(または複合操作)で、操作をロックでラップしました。並行安全マップ、ロックまたはゴルーチンを作成していますか?
func .. {
mu.Lock()
defer mu.Unlock()
..
}
私はこれにもゴルーチンを使用できますか?私はgoroutinesを使うべきですか?
これは、Go 1.9以降では不要になりました。同時に使用するマップの実装はすでにsync.Map
です。
もしあなたが必要とするものがロックであれば、何のためにゴルーチンを使うつもりですか? – JimB
ロックは、通常、単純なマップアクセスを同期するための最良の方法です。 –
http://stackoverflow.com/questions/34631561/should-goroutine-channel-based-mechanism-replace-a-concurrent-map、http://stackoverflow.com/questions/11063473/map-with-concurrentも参照してください。 -access、http://stackoverflow.com/questions/36725098/creating-a-concurrent-safe-map-lock-or-goroutine、http://stackoverflow.com/questions/18192173/nice-go-idiomatic-way -of-a-shared-mapなど – JimB