đây là câu hỏi dành cho người mới bắt đầu tôi đoán nhưng tôi không thể tìm thấy câu trả lời cho câu hỏi cụ thể này:là < vector > luồng an toàn để đọc/ghi tại các vị trí khác nhau?
tôi có vectơ chuẩn (C++) v có kích thước 10 và nhập int.
có an toàn để thay đổi tất cả các vị trí (v.at (0) = x; v.at (2) = y; v.v.) và một chủ đề khác thay đổi tất cả các giá trị cho các vị trí lẻ (v.at (1) = a; v.at (3) = b; vv) cùng một lúc?
vì vậy, không thay đổi kích thước, không có push_back() v.v. trong suốt thời gian tồn tại của 2 luồng này.
nếu không an toàn, việc sử dụng mảng có phải là cách tốt hơn để thực hiện việc này không?
cảm ơn sự giúp đỡ của bạn.
+1 để cố gắng tránh những đêm không ngủ sau khi ứng dụng này được phân phối và, tệ hơn, được tăng cường/duy trì: ( –
cảm ơn câu trả lời của bạn. ... xem ý của bạn là gì? Mặc dù: cách bạn tiếp cận vấn đề là ý tưởng là chia một lưới khá lớn các biến thành các phần để chia sẻ thời gian tính toán.Một khóa trên toàn bộ lưới/vector sẽ làm chậm mọi thứ khá một chút –
@Benthebear: Có thể từ phía đối diện ... tạo ra lưới điện trong các bộ phận, xử lý từng phần một cách độc lập với không có khóa, và cuối cùng kết hợp các kết quả.Có thể làm việc? – Jon