Ich verwende eine std :: map und habe eine große Anzahl von Elementen. Wenn ich die Karte löschen muss, kann ich einfach clear () aufrufen. Es kann einige Zeit dauern, um zu löschen, und vor allem, wenn es unter einer Sperre in einer Multithread-Umgebung ausgeführt wird, kann es andere Aufrufe blockieren. Um den Aufruf von clear () zu vermeiden, habe ich Folgendes versucht:
%Vor%Dadurch wird my_map in temp_map unter der Sperre verschoben, wodurch es gelöscht wird. Und sobald die Funktion beendet ist, wird die Temp_Map zerstört.
Ist das ein besserer Weg, um das Schloss für lange Zeit nicht zu nehmen? Gibt es Leistungseinbußen?
Tags und Links c++ multithreading c++14 mutex stdmap