Ich habe eine Klasse, die ich wan es in verschiedenen Threads zu verwenden, und ich denke, ich in der Lage sein kann std::atomic
wie diese verwenden:wie std verwenden :: Atom <>
classs A
{
int x;
public:
A()
{
x=0;
}
void Add()
{
x++;
}
void Sub()
{
x--;
}
};
und in meinem Code :
std::atomic<A> a;
und in unterschiedlichen Gewinde:
a.Add();
und
a.Sub();
aber wenn ich Fehler bekomme, ist a.Add()
nicht bekannt. Wie kann ich das erreichen?
Gibt es einen besseren Weg, dies zu tun?
Edit 1
Bitte beachten Sie, dass es sich um eine Probe Beispiel ist, und das, was ich will, ist, um sicherzustellen, dass der Zugang zu der Klasse A THREAD ist, so kann ich nicht
std::atomic<int> x;
verwende Wie kann ich Machen Sie eine Klasse thread sicher mit std :: atomic?
Werfen Sie einen Blick auf Tutorial http://baptiste-wicht.com/posts/2012/07/c11-concurrency-tutorial-part-4-atomic-type.html. – user1929959