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

Operacje atomowe

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
543 wizyt
pytanie zadane 16 sierpnia 2022 w C i C++ przez RufinB Obywatel (1,960 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 Mentor (350,980 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 (195,260 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,960 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 (195,260 p.)
Tak (pod warunkiem, że każdy wątek śmiga na oddzielnym rdzeniu).
komentarz 16 sierpnia 2022 przez RufinB Obywatel (1,960 p.)
Dzięki

Podobne pytania

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

93,185 zapytań

142,198 odpowiedzi

322,005 komentarzy

62,514 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2127p. - dia-Chann
  2. 2092p. - Łukasz Piwowar
  3. 2079p. - Łukasz Eckert
  4. 2037p. - Tomasz Bielak
  5. 2006p. - rucin93
  6. 2005p. - Łukasz Siedlecki
  7. 1964p. - CC PL
  8. 1835p. - Adrian Wieprzkowicz
  9. 1785p. - Michal Drewniak
  10. 1744p. - rafalszastok
  11. 1684p. - Mikbac
  12. 1624p. - Anonim 3619784
  13. 1520p. - Marcin Putra
  14. 1480p. - ssynowiec
  15. 1365p. - Dawid128
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...