Serwis Edukacyjny
Nauczycieli
w I-LO w Tarnowie

Do strony głównej I LO w Tarnowie

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

©2020 mgr Jerzy Wałaszek
I LO w Tarnowie

logo

Autor artykułu: mgr Jerzy Wałaszek

 

SDL2

Interfejs SDL2 wg kategorii

Operacje Atomowe

Rozdziały:
     Interfejs SDL2 wg nazw
     Interfejs SDL2 wg kategorii

 

Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2. Oryginał znajdziesz pod tym adresem: https://wiki.libsdl.org/APIByCategory.

Operacje Atomowe

Pliki nagłówkowe: SDL_atomic.h

Wprowadzenie

Ta kategoria zawiera funkcje obsługujące operacje atomowe.

! WAŻNE:

Jeśli nie jesteś ekspertem od współbieżnego programowania nieblokowanego, powinieneś używać tylko funkcji atomowo blokujących i zliczających odwołania. We wszystkich innych przypadkach powinieneś chronić swoje struktury danych za pomocą pełnych mutexów.s!

"Bezpiecznymi" funkcjami są:

SDL_AtomicLock()

SDL_AtomicUnlock()

SDL_AtomicIncRef()

SDL_AtomicDecRef()

Możesz dowiedzieć się nieco więcej na temat nieblokowanego programowania oraz subtelnych problemów, które mogą przy tym powstawać tutaj (język angielski):

Tutaj również jest dużo dobrych informacji:

Operacje te mogą, lecz nie muszą być faktycznie zaimplementowane przy użyciu specyficznych dla procesora operacji atomowych. Jeśli jest to możliwe, są one tak właśnie implementowane. Gdy jest to niemożliwe, są implementowane przy użyciu blokad, które korzystają z operacji atomowych.

Wszystkie operacje atomowe modyfikujące pamięć są pełnymi barierami pamięciowymi.

Blokady Atomowe

Blokady atomowe są efektywnymi blokadami wirującymi korzystającymi z instrukcji mikroprocesora, lecz są wrażliwe na zagłodzenie i mogą wirować w nieskończoność, jeśli zawierający je wątek został zakończony. Z tego powodu powinieneś minimalizować kod wykonywany wewnątrz blokady atomowej i nigdy nie wykonywać kosztownych operacji, takich jak wywołania funkcji interfejsu programistycznego aplikacji lub funkcji systemowych, podczas ich blokowania.

! Blokady atomowe nie są bezpieczne przy rekursywnym blokowaniu.

Struktury

SDL_atomic_t

Funkcje

SDL_AtomicAdd
SDL_AtomicCAS
SDL_AtomicCASPtr
SDL_AtomicDecRef
SDL_AtomicGet
SDL_AtomicGetPtr
SDL_AtomicIncRef
SDL_AtomicLock
SDL_AtomicSet
SDL_AtomicSetPtr
SDL_AtomicTryLock
SDL_AtomicUnlock
SDL_CompilerBarrier

 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2020 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.