2016-04-19 3 views
1

私は同時アクセスで安全なマップを作成しました。それぞれの操作(または複合操作)で、操作をロックでラップしました。並行安全マップ、ロックまたはゴルーチンを作成していますか?

func .. { 
    mu.Lock() 
    defer mu.Unlock() 
    .. 
} 

私はこれにもゴルーチンを使用できますか?私はgoroutinesを使うべきですか?

+1

もしあなたが必要とするものがロックであれば、何のためにゴルーチンを使うつもりですか? – JimB

+3

ロックは、通常、単純なマップアクセスを同期するための最良の方法です。 –

+0

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

答えて

1

これは、Go 1.9以降では不要になりました。同時に使用するマップの実装はすでにsync.Mapです。

関連する問題