все: В соответствии с this page реализации C++ обычно используют атомный номер ref для обеспечения безопасности потоков, но в некоторых случаях это кажется ошибкой.C++ shared_ptr как обеспечить безопасность потоков?
`` `
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;
}
` ``
Как выше показывает код, если строительство копии в func2 происходит после того, как внутренний счетчик ссылок на a1 уменьшается, указатель будет удаляются в два раза, правильно?
Багги вещь здесь * ваш * код ... висящий необработанный указатель. – deviantfan