Bo w tym cały jest ambaras, kiedy dwoje zmienia naraz - synchronizacja w programach współbieżnych
Program współbieżny to program złożony z wielu wykonujących się jednocześnie procesów. Najczęściej współpracują one ze sobą w celu rozwiązania pewnego problemu lub wykonania pewnej pracy. Współpraca ta często wymaga jednak wymiany informacji, np. wyników częściowych obliczonych przez poszczególne procesy. Takie wyniki częściowe mogą być na przykład zapisywane w zmiennych. Okazuje się jednak, że zmiana wartości zmiennej, nie może być wykonywana współbieżne i wymaga umiejętnej synchronizacji procesów. Na przykładzie prostych programów zobaczymy, dlaczego taka synchronizacja jest niezbędna i do jakich subtelnych błędów może prowadzić jej brak. Przekonamy się też, jak bardzo nieintuicyjna jest analiza programu współbieżnego. Na koniec zobaczymy, że wykonanie na współczesnym procesorze poprawnie zsynchronizowanego programu współbieżnego może nas mocno zaskoczyć!