Mam klasy, że wan go używać w różnych wątków i myślę, że mogę być w stanie wykorzystać std::atomic
takie jak to:jak używać std :: atomowej <>
classs A
{
int x;
public:
A()
{
x=0;
}
void Add()
{
x++;
}
void Sub()
{
x--;
}
};
iw moim kodu :
std::atomic<A> a;
w różnych nici:
a.Add();
i
a.Sub();
, ale gdy otrzymuję komunikat o błędzie, nieznana jest nazwa a.Add()
. Jak mogę to osiągnąć?
Czy istnieje lepszy sposób to zrobić?
Edycja 1
Należy pamiętać, że jest to próbka przykład, i to, co chcę jest, aby upewnić się, że dostęp do klasy A jest threadsafe, więc nie mogę używać
std::atomic<int> x;
Jak mogę uczynić wątek klasy bezpiecznym przy użyciu std :: atomic?
Zobacz poradnik http://baptiste-wicht.com/posts/2012/07/c11-concurrency-tutorial-part-4-atomic-type.html. – user1929959