Wpis z mikrobloga

#programowanie #cpp

To teraz będzie laickie pytanie. Gdzie mogę poczytać o pisaniu wielowątkowych programów?

Aktualnie głównie mnie interesuje czy muszę blokować dostęp do obszaru pamięci, jeżeli czytam ją z wielu wątków? Czy muszę tylko zablokować podczas pisania do pamięci, żeby w tym czasie inny wątek nie czytał jej?

Proszę o wyrozumiałość :)
  • 4
Czy muszę tylko zablokować podczas pisania do pamięci, żeby w tym czasie inny wątek nie czytał jej?


@kasper93: Nic nie musisz. Możesz sobie dowolnie operować na dowolnym obiekcie różnymi wątkami, jednak kiedy nie zastosujesz synchronizacji to może się zdarzyć tak, że jeden wątek nadpisze to co zrobił inny i program może nie zachować się tak jakbyś chciał.
@kasper93: jeśli tylko czytasz, to nie potrzebujesz żadnej synchronizacji. Jeśli jednak często czytasz, ale może się zdarzyć, że zaczniesz pisać, wtedy synchronizacja jest potrzebna wszystkim wątkom - bo a nóż widelec ktoś twoim wesoło czytającym wątkom coś podmieni.

Co poczytać? To co jest w standardowej bibliotece w C++11: http://en.cppreference.com/w/cpp/thread

Co jeszcze? Szczerze mówiąc sam podstawę dostałem na studiach, a potem tylko doczytywałem. Prawda jest też niestety taka, że dużo rzeczy ustandaryzowało