REKLAMA

Pamięć transakcyjna i postęp w jej wprowadzeniu w C++20

Tworząc aplikacje pracujące w systemach współbieżnych, jak i rozproszonych, każdy programista wcześniej czy później stanie przed problemem synchronizacji dostępu wątków/procesów do obszaru zasobów współdzielonych, zwłaszcza pamięci, czy to w celu komunikacji między procesami, czy w celu odczytu/modyfikacji współdzielonych danych. Żądanie dostępu do danych może nastąpić jednocześnie w kilku wątkach, co wprowadza problem rywalizacji o zasoby. Sytuacja taka wymusza synchronizację dostępu do zasobów przez wątki, tak aby z jednej strony wykluczyć modyfikowanie wspólnych zasobów jednocześnie przez kilka wątków, a z drugiej strony zagwarantować pełną współbieżność...

Niektóre zagadnienia poruszane w tym artykule:

  • Definicja funkcji swap w wersji współbieżnej;
  • Definicja bezpieczna funkcji swap w wersji współbieżnej;
  • Przykładowa transakcja T-SQL;
  • Definicja bloku transakcyjnego w notacji GCC;
  • Przykładowa deklaracja klasy z modyfikatorami transakcyjnymi;
  • Przykładowa deklaracja szablonu z modyfikatorami transakcyjnymi;
  • Definicja funkcji swap w wersji transakcyjnej.

Artykuł pochodzi magazynu Programista nr 77 (10/2018). Jest to wydanie z przełomu grudnia 2018 r. i stycznia 2019 r. Szczegółowy spis treści: https://programistamag.pl/programista-10-2018-77/

Autorem artykułu jest Grzegorz Jurek. Programista C++. Z wykształcenia fizyk teoretyczny. Pracuje obecnie w łódzkim centrum R&D LTE firmy Ericsson. Prywatnie autor rozwiązań w zakresie oprogramowania CAD/CAM i ERP dla przemysłu odzieżowego.

>>FRAGMENT ARTYKUŁU DO POBRANIA<<