void HelloWorld()
{
static std::atomic<short> static_counter = 0;
short val = ++static_counter; // or val = static_counter++;
}
Nếu chức năng này được gọi là từ hai chủ đề,Chủ đề an toàn biến địa phương
thể biến địa phương val
được 1
trong cả hai bài? hoặc (0 nếu static_counter++
được sử dụng?)
Có thể trùng lặp http://stackoverflow.com/questions/8102125/is-local-static-variable-initialization-thread-safe-in-c11 – user2807083
@ user2807083 Đó không phải là câu hỏi. Tôi biết static_counter sẽ được khởi tạo một cách an toàn. Tiêu chuẩn C++ 11 yêu cầu điều đó. Tôi đang nói về val, mà không phải là tĩnh .. – James
Tôi nghĩ rằng đây là không có gì về địa phương của bạn 'var', nhưng tất cả về nhà điều hành ++ áp dụng cho biến tĩnh. Vì vậy, tôi nghĩ câu hỏi đúng là "Sự gia tăng của chuỗi biến nguyên tử có an toàn không?" – user2807083