ich den folgenden Code gefunden, setzen die aus immer:Wie kann der spezialisierte Atomtyp der Struktur frei von Sperren sein?
std::atomic<A> is lock free? false
std::atomic<B> is lock free? true
Dies ist der Code:
struct A { int a[100]; };
struct B { int x, y; };
int main()
{
std::cout << std::boolalpha
<< "std::atomic<A> is lock free? "
<< std::atomic<A>{}.is_lock_free() << '\n'
<< "std::atomic<B> is lock free? "
<< std::atomic<B>{}.is_lock_free() << '\n';
}
Ich verstehe nicht, wie kann die zweite Struktur spezialisierte Atomschloß frei sein und die 1. spezialisierte Atomart kann nicht frei von Sperren sein?
Vielen Dank im Voraus.
Vermutlich ist Ihre Hardware in der Lage, atomare Anweisungen in einer ausreichenden Breite auszuführen, die zwei 'int's enthalten kann. –