• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Operacje atomowe

Object Storage Arubacloud
0 głosów
299 wizyt
pytanie zadane 16 sierpnia 2022 w C i C++ przez RufinB Obywatel (1,830 p.)
edycja 16 sierpnia 2022 przez RufinB
W podręczniku do c++ przeczytałem że  powodem dla którego zmienna atomic nie może mieć konstruktora kopiującego jest fakt że "operacja na dwóch różnych zmiennych nie może być atomowa" więc jak może istnieć compare_exchange_weak jako operacja atomowa skoro działa niemal identycznie jak hipoteczny konstruktor kopiujący
komentarz 16 sierpnia 2022 przez adrian17 Ekspert (344,860 p.)

zmienna atomic nie może mieć konstruktora kopiującego

Klasa przechowywana w atomic<> nie może mieć nietrywialnego konstruktora kopiującego.

więc jak może istnieć compare_exchange_weak jako operacja atomowa skoro działa niemal identycznie jak hipoteczny konstruktor kopiujący

TBH nie wiem co przez to masz na myśli.

1 odpowiedź

0 głosów
odpowiedź 16 sierpnia 2022 przez j23 Mędrzec (194,920 p.)
edycja 16 sierpnia 2022 przez j23
 
Najlepsza

Generalnie chodzi o to, że operacje atomowe realizowane są na bardzo niskim poziomie (instrukcji procesora), a tam nie ma czegoś takiego jak klasy, nie ten poziom abstrakcji. Tam są bajty, słowa, podwójne słowa itd. Dlatego std::atomic wymaga, by typ T był Trivially Copyable, czyli przy kopiowaniu był traktowany jak ciąg bajtów, a nie zbiór pól, które trzeba jakoś specjalnie kopiować wykorzystując zdefiniowane przez nie operatory kopiowania.

komentarz 16 sierpnia 2022 przez RufinB Obywatel (1,830 p.)
A czy jest możliwe aby operacje atomowe wykonywane na dwóch różnych zmiennych atowowych w dwóch różnych wątkach (każdy wątek pracuje na własnej zmiennej atomowej) były wykonywane równocześnie
komentarz 16 sierpnia 2022 przez j23 Mędrzec (194,920 p.)
Tak (pod warunkiem, że każdy wątek śmiga na oddzielnym rdzeniu).
komentarz 16 sierpnia 2022 przez RufinB Obywatel (1,830 p.)
Dzięki

Podobne pytania

0 głosów
1 odpowiedź 374 wizyt
+1 głos
1 odpowiedź 809 wizyt
pytanie zadane 30 stycznia 2018 w C i C++ przez Treners Początkujący (310 p.)
0 głosów
1 odpowiedź 125 wizyt

92,555 zapytań

141,404 odpowiedzi

319,560 komentarzy

61,941 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...