I have a threaded server application that stores List- dataList
. There is a single writing thread that modifies, adds and removes items from the list, and multiple threads that read from this list.
Wat voor soort synchronisatie is vereist om ervoor te zorgen dat de schrijfbewerkingen in de juiste volgorde plaatsvinden terwijl ze werden aangeroepen en maximale prestaties bieden voor de leesacties, dat wil zeggen dat als een schrijf bezig is, moet de vorige waarde vóór de leesbewerking worden opgegeven.
Ik gebruik momenteel ReaderWriterLockSlim
vanwege de afzonderlijke lees- en schrijfvergrendelingsmogelijkheden, maar het lijkt alsof er veel dure overheadkosten zijn om de ReadLocks te bellen. Dit is onnodig omdat ik alleen wil dat de boeken worden gegarandeerd in de juiste volgorde ?
Voor zover ik begrijp, moeten leesreferentietypes en waardetypes atoomtoegang bieden, zodat vergrendeling misschien niet nodig is?
Prestaties zijn een grote zorg en het lijkt erop dat optimalisatie van mijn synchronisatiestructuur behoorlijk zou kunnen verbeteren.