2016-04-19 9 views
1

Ich habe eine Karte erstellt, die für den gleichzeitigen Zugriff sicher ist. In jeder der Operationen (oder zusammengesetzten Operationen) habe ich die Operation mit einer Sperre versehen.Erstellen einer gleichzeitigen sicheren Karte, Sperre oder Goroutine?

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

Könnte ich für diese auch goroutines verwenden? Soll ich Gorousines benutzen?

+1

Wenn alles, was Sie brauchen, eine Sperre ist, wofür werden Sie Goroutines verwenden? – JimB

+3

Eine Sperre ist normalerweise der beste Ansatz zum Synchronisieren des einfachen Kartenzugriffs. –

+0

Siehe auch http://stackoverflow.com/questions/34631561/sould-goroutine-channel-based-mechanis-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-using-a-shared-map usw. – JimB

Antwort

1

Dies ist in Go 1.9 und höher nicht mehr erforderlich. Es gibt bereits eine Map-Implementierung für die gleichzeitige Verwendung sync.Map.

Verwandte Themen