alle: Nach this page C++ - Implementierungen verwendet in der Regel atomare ref count, um Thread-Sicherheit zu gewährleisten, aber dies scheint in einigen Fällen fehlerhaft.C++ shared_ptr Wie gewährleistet man die Thread-Sicherheit?
`` `
void func2(shared_ptr<int>* x) {
shared_ptr<int> a(*x);
*a += 1;
}
thread func1() {
shared_ptr<int> a1(new int(10));
thread t (func2, &a1);
return t;
}
` ``
Wie der obigen Code zeigt an, ob die Kopie Bau in func2 nach dem internen Referenzzähler von a1 verringert geschieht, erhält der Zeiger zweimal gelöscht, Recht?
Das Buggy-Ding hier ist * Ihr * Code ... dangling rohe Zeiger. – deviantfan