1
ปลอดภัยหรือไม่ที่จะเรียกใช้พร้อมกัน :: concurrent_vector :: push_back ขณะที่วนซ้ำ concurrent_vector นั้นในเธรดอื่น?
push_back , เริ่มต้น , ปลายจะมีการอธิบายเป็นที่ปลอดภัยพร้อมกันใน https://docs.microsoft.com/en-us/cpp/parallel/concrt/reference/concurrent-vector-class?view=vs-2019#push_back อย่างไรก็ตามโค้ดด้านล่างนี้เป็นการยืนยัน อาจเป็นเพราะองค์ประกอบถูกเพิ่ม แต่ยังไม่ได้เริ่มต้น struct MyData { explicit MyData() { memset(arr, 0xA5, sizeof arr); } std::uint8_t arr[1024]; }; struct MyVec { concurrency::concurrent_vector<MyData> v; }; auto vector_pushback(MyVec &vec) -> void { vec.v.push_back(MyData{}); } auto vector_loop(MyVec &vec) -> void { MyData myData; for (auto it = vec.v.begin(); …