tức là, những điều sau đây có thể được thực hiện đúng ngay cả trong môi trường đa luồng không?Trong C + +, là khởi tạo tĩnh của các kiểu nguyên thủy đến các giá trị không đổi thread-safe?
int dostuff(void) {
static int somevalue = 12345;
return somevalue;
}
Hoặc là nó có thể cho nhiều chủ đề để gọi này, và một cuộc gọi đến trả lại bất cứ rác là tại &somevalue
trước khi thực hiện bắt đầu?
const tĩnh không phải là một lựa chọn? –
constness sẽ không hoạt động ở đây vì int sẽ được sửa đổi sau này (trong khi một mutex được biết là hợp lệ được giữ lại.) Cảm giác ruột của tôi là bất kỳ trình biên dịch sane nào sẽ tối thiểu bằng không khởi tạo các số nguyên tĩnh tại phạm vi hàm trước khi bắt đầu thực hiện (trong trường hợp đó, nó đủ tốt đối với tôi.) Tuy nhiên, đó là thứ dễ dàng để đi lên. –
Về mặt kỹ thuật số. Nhưng gcc có một bản vá rõ ràng để đảm bảo rằng nó hoạt động trong môi trường đa luồng. –