Co oznaczają atomici co nonatomicoznaczają deklaracje majątkowe? @property(nonatomic, retain) UITextField *userName; @property(atomic, retain) UITextField *userName; @property(retain) UITextField *userName; Jaka jest różnica operacyjna między tymi
Operacja atomowa jest niepodzielna. Termin ten jest używany między innymi do opisania transakcji w bazach danych, niskopoziomowych dostępów w programach wielowątkowych i operacji w systemie plików.
Co oznaczają atomici co nonatomicoznaczają deklaracje majątkowe? @property(nonatomic, retain) UITextField *userName; @property(atomic, retain) UITextField *userName; @property(retain) UITextField *userName; Jaka jest różnica operacyjna między tymi
Jak atomowy / lotny / zsynchronizowany działa wewnętrznie? Jaka jest różnica między następującymi blokami kodu? Kod 1 private int counter; public int getNextUniqueIndex() { return counter++; } Kod 2 private AtomicInteger counter; public int getNextUniqueIndex() { return...
W książce Effective Java napisano: Specyfikacja języka gwarantuje, że odczyt lub zapis zmiennej jest niepodzielny, chyba że zmienna jest typu longlub double[JLS, 17.4.7]. Co oznacza „atomowy” w kontekście programowania Java lub programowania w
Rozumiem, że AtomicInteger i inne zmienne Atomic pozwalają na równoczesny dostęp. W jakich przypadkach ta klasa jest zwykle
Rozumiem, że std::atomic<>jest to obiekt atomowy. Ale do jakiego stopnia atomowa? W moim rozumieniu operacja może być atomowa. Co dokładnie oznacza uczynienie obiektu atomowym? Na przykład, jeśli istnieją dwa wątki współbieżnie wykonujące następujący kod: a = a + 12; Czy zatem cała operacja...
Ogólnie rzecz biorąc, for int num, num++(lub ++num), jako operacja odczytu-modyfikacji-zapisu, nie jest atomowa . Ale często widzę kompilatory, na przykład GCC , generują dla niego następujący kod ( spróbuj tutaj ): Ponieważ wiersz 5, który odpowiada, num++jest jedną instrukcją, czy możemy...
Wiem, że operacje złożone, takie jak, i++nie są bezpieczne dla wątków, ponieważ obejmują wiele operacji. Ale czy sprawdzanie referencji z samym sobą jest operacją bezpieczną dla wątków? a != a //is this thread-safe Próbowałem to zaprogramować i używać wielu wątków, ale to się nie udało. Chyba...
Jeśli istnieją dwa wątki uzyskujące dostęp do zmiennej globalnej, wiele samouczków mówi, że zmienna jest ulotna, aby zapobiec buforowaniu zmiennej przez kompilator w rejestrze, a tym samym niepoprawnej aktualizacji. Jednak dwa wątki, które uzyskują dostęp do wspólnej zmiennej, są czymś, co wymaga...
Jaka jest różnica między metodami lazySeti ? Dokumentacji nie ma wiele do powiedzenia na temat :setAtomicIntegerlazySet Ostatecznie ustawia się na podaną wartość. Wydaje się, że przechowywana wartość nie zostanie natychmiast ustawiona na żądaną wartość, ale zamiast tego zostanie zaplanowana do...
Jaka jest różnica między atomową a krytyczną w OpenMP? mogę to zrobić #pragma omp atomic g_qCount++; ale to nie to samo co #pragma omp
Ogólnie rzecz biorąc, co możemy przyjąć za pewnik, gdy dołączamy do pliku w systemie UNIX z wielu procesów? Czy można stracić dane (jeden proces nadpisuje zmiany drugiego)? Czy dane mogą zostać zniekształcone? (Na przykład, każdy proces dołącza po jednym wierszu do pliku dziennika, czy jest...
Jaki jest koszt operacji atomowej (dowolnej z opcji porównania i zamiany lub atomowego dodawania / zmniejszania)? Ile cykli zużywa? Czy wstrzyma inne procesory na SMP lub NUMA, czy też zablokuje dostęp do pamięci? Czy opróżni bufor zmiany kolejności w niesprawnym procesorze? Jakie efekty...
bool compare_exchange_weak (T& expected, T val, ..); compare_exchange_weak()jest jednym z prymitywów wymiany porównawczej udostępnionych w C ++ 11. Jest słaba w tym sensie, że zwraca fałsz, nawet jeśli wartość obiektu jest równa expected. Wynika to z fałszywej awarii na niektórych...
Czy istnieje sposób ochrony przed równoczesnymi modyfikacjami tego samego wpisu w bazie danych przez dwóch lub więcej użytkowników? Dopuszczalne byłoby wyświetlenie komunikatu o błędzie użytkownikowi wykonującego drugą operację zatwierdzenia / zapisania, ale dane nie powinny być po cichu...
Pracuję w projekcie z C ++ 11 i próbowałem śledzić kod #include <atomic> struct A { std::atomic_int idx = 1; }; int main() { return 0; } Otrzymuję błąd kompilatora error: use of deleted function 'std::__atomic_base<_IntTp>::__atomic_base(const
Chcę napisać przenośny kod (Intel, ARM, PowerPC ...), który rozwiązuje wariant klasycznego problemu: Initially: X=Y=0 Thread A: X=1 if(!Y){ do something } Thread B: Y=1 if(!X){ do something } w którym celem jest uniknięcie sytuacji, w której robią oba wątkisomething . (W porządku, jeśli...
Rozważać: void foo() { std::vector<std::atomic<int>> foo(10); ... } Czy zawartość foo jest teraz aktualna? Czy też muszę je przejrzeć i zainicjować? Sprawdziłem Godbolt i wydaje się, że jest w porządku, jednak standard wydaje się być bardzo zagmatwany w tym punkcie. Konstruktor...
Walczę z sekcją 5.1.2.4 normy C11, w szczególności semantyką wydania / nabycia. Zauważam, że https://preshing.com/20120913/acquire-and-release-semantics/ (między innymi) stwierdza, że: ... Semantyka wydania zapobiega zmianie kolejności pamięci wydania-zapisu przy każdej operacji odczytu lub...
Przesłanka: Pracuję w środowisku ARM (prawie bez systemu), w którym nawet nie mam C ++ 11 (z std::atomic<int>) dostępnym, więc proszę unikać odpowiedzi typu „ po prostu użyj standardowego C ++std::atomic<int> ”: nie mogę . Czy ta implementacja ARM AtomicInt jest poprawna? (załóżmy, że...
Czy ktoś może mi powiedzieć, czy std :: atomic :: is_lock_free () nie jest statyczny tak dobrze jak constexpr? Posiadanie go jako niestatycznego i / lub jako non-constexpr nie ma dla mnie