Ist Vektor-Push_back-Thread sicher?
Ist Vektor-Push_back-Thread sicher?

Video: Ist Vektor-Push_back-Thread sicher?

Video: Ist Vektor-Push_back-Thread sicher?
Video: C++ : Is it concurrency-safe to call concurrency::concurrent_vector::push_back while iterating over 2024, Kann
Anonim

Es ist nicht Gewinde - sicher weil ein Vektor zusammenhängend ist und wenn es größer wird, müssen Sie möglicherweise den Inhalt von a verschieben Vektor an eine andere Stelle im Speicher.

Die Frage ist auch, sind Vektoren threadsicher?

Vektoren sind synchronisiert. Jede Methode, die die Vektor Der Inhalt ist fadensicher . ArrayList hingegen ist unsynchronisiert, was sie daher nicht fadensicher.

Wissen Sie auch, ist HashMap-Thread sicher? HashMap ist nicht synchronisiert. Es ist nicht- fadensicher und kann nicht von vielen geteilt werden Fäden ohne richtigen Synchronisationscode, während Hashtable synchronisiert wird. Es ist Gewinde - sicher und kann mit vielen geteilt werden Fäden.

Welcher Vektor oder ArrayList ist hier besser?

Vektor ist ähnlich mit Anordnungsliste , aber es ist synchronisiert. Anordnungsliste ist ein besser Wahl, wenn Ihr Programm Thread-sicher ist. Vektor und Anordnungsliste requirespace, wenn weitere Elemente hinzugefügt werden. Vektor jedes Mal verdoppelt sich die Array-Größe, während Anordnungsliste wächst jedes Mal um 50% seiner Größe.

Warum wird Vektor in Java verwendet?

Vektor in Java . Vektor implementiertList-Schnittstelle. Wie ArrayList behält es auch die Einfügereihenfolge bei, aber selten Gebraucht in einer Nicht-Thread-Umgebung, da es synchronisiert ist und aufgrund dessen es eine schlechte Leistung beim Suchen, Hinzufügen, Löschen und Aktualisieren seiner Elemente bietet.

Empfohlen: