Dưới đây là kịch bản:C++ unordered_map STL, an toàn thread nơi mỗi thread truy cập duy nhất đó là phím đã gán riêng và có thể chỉnh sửa giá trị
1) sử dụng một unordered_map<int, vector<MyClass*>*>
giả sử tôi thêm phím 1, 2, ... 8
2) tất cả các phím được đặt bằng vectơ khi khởi tạo chương trình và không có gì được thêm hoặc xóa
3) Tôi có 8 chuỗi, trong đó thread1 truy cập khóa [1], thread2 truy cập khóa [2], ... thread8 phím truy cập [8] (tức là số chỉ có thể truy cập số khóa đó và không có phím nào khác)
Thỉnh thoảng tôi gán lại giá trị vecto r * đến một bộ sưu tập phân bổ đống khác. (ví dụ: thread1 thực hiện key[1] = new vector<MyClass*>
)
Tôi tin rằng đây sẽ là chủ đề an toàn, tôi có đúng không? Nếu không, tôi cho rằng tôi sẽ sử dụng concurrent_unordered_map.
cảm ơn.
Tôi vừa phát hiện ra rằng '[container.requirements.dataraces]/1' cho phép điều này được thực hiện theo cách đẹp hơn tôi đã đề xuất trong câu trả lời ban đầu. Xin vui lòng xem qua. – Mankarse