std::list thread_safety

  1. Ich habe eine Liste, wo man thread nicht einfach push_back und anderen thread gelegentlich eine Schleife durch die Liste und druckt alle Elemente. Muss ich eine Sperre in diesem Fall?
  2. Habe ich die Zeiger auf die Elemente in einem anderen Objekt. Ist es sicher zu haben? Ich weiß, dass Vektor verschieben Sie alle Objekte, wenn es mehr Speicherplatz benötigt, so Zeiger ungültig wird.

    mylist.push_back(MyObj(1));

    wenn(someCond)

    {

    _myLastObj = &mylist.back();

    }

_myLastObj ist der Typ MyObj*

Wenn ich hatte einen Vektor, das Objekt hätte an einen anderen Speicherort verschoben und der Zeiger würde zeigen, zu Müll. Ist es sicher mit einer Liste?

InformationsquelleAutor balki | 2012-07-05
Schreibe einen Kommentar