Trwają zapisy do grupy

Szkolenie: Go * zaawansowana współbieżność

Szkolenie Go * zaawansowana współbieżność to praktyczny kurs, który uczy projektowania i diagnozowania skomplikowanych systemów współbieżnych w języku Go, w oparciu o goroutines, kanały, prymitywy synchronizacji, model pamięci oraz zaawansowane wzorce projektowe

  • Trenerzy praktycy
  • Kameralne grupy

Czas trwania szkolenia:2 dni (16h)

Poziom zaawansowania:

Kod kursu:GO/CONCURRENCY

Dostępne terminy szkolenia

  • Termin
  • Trener
  • Cena
  • Lokalizacja
  • Zapis

Termin:

2 czerwca - 3 czerwca
Trwają zapisy na szkolenieTrwają zapisy na szkolenie
Dostępne w Bazie Usług RozwojowychDostępne w Bazie Usług Rozwojowych

Trener:

Trener-Sages

Cena:

2150 PLN netto
Dowiedz się więcej o cenach szkoleń - zapraszamy do kontaktuDowiedz się więcej o cenach szkoleń - zapraszamy do kontaktu
+23% VAT

Lokalizacja:

Zdalne
Zdalne
Zapytaj o inne lokalizacje - w tym celu skorzystaj z chatuZapytaj o inne lokalizacje - w tym celu skorzystaj z chatu

Termin:

27 sierpnia - 28 sierpnia
Trwają zapisy na szkolenieTrwają zapisy na szkolenie
Dostępne w Bazie Usług RozwojowychDostępne w Bazie Usług Rozwojowych

Trener:

Trener-Sages

Cena:

2150 PLN netto
Dowiedz się więcej o cenach szkoleń - zapraszamy do kontaktuDowiedz się więcej o cenach szkoleń - zapraszamy do kontaktu
+23% VAT

Lokalizacja:

Zdalne
Zdalne
Zapytaj o inne lokalizacje - w tym celu skorzystaj z chatuZapytaj o inne lokalizacje - w tym celu skorzystaj z chatu

Termin:

22 października - 23 października
Trwają zapisy na szkolenieTrwają zapisy na szkolenie
Dostępne w Bazie Usług RozwojowychDostępne w Bazie Usług Rozwojowych

Trener:

Trener-Sages

Cena:

2150 PLN netto
Dowiedz się więcej o cenach szkoleń - zapraszamy do kontaktuDowiedz się więcej o cenach szkoleń - zapraszamy do kontaktu
+23% VAT

Lokalizacja:

Zdalne
Zdalne
Zapytaj o inne lokalizacje - w tym celu skorzystaj z chatuZapytaj o inne lokalizacje - w tym celu skorzystaj z chatu

Termin:

22 grudnia - 23 grudnia
Trwają zapisy na szkolenieTrwają zapisy na szkolenie
Dostępne w Bazie Usług RozwojowychDostępne w Bazie Usług Rozwojowych

Trener:

Trener-Sages

Cena:

2150 PLN netto
Dowiedz się więcej o cenach szkoleń - zapraszamy do kontaktuDowiedz się więcej o cenach szkoleń - zapraszamy do kontaktu
+23% VAT

Lokalizacja:

Zdalne
Zdalne
Zapytaj o inne lokalizacje - w tym celu skorzystaj z chatuZapytaj o inne lokalizacje - w tym celu skorzystaj z chatu

Forma szkolenia

Interesuje Cię szkolenie stacjonarne?

Powiadom o kolejnych terminach

Interesuje Cię szkolenie w innym terminie?

Go * zaawansowana współbieżność

Cele szkolenia

  • Szkolenie przygotowuje do samodzielnego projektowania i implementowania zaawansowanych wzorców współbieżności Go, w tym pipelines, fan-in/fan-out oraz structured concurrency w systemach produkcyjnych

  • Szkolenie uczy diagnostyki i debugowania race condition, deadlocków oraz problemów wydajnościowych z użyciem narzędzi takich jak pprof, trace i race detector w aplikacjach concurrency Go

  • Szkolenie pokazuje, jak łączyć structured concurrency, model pamięci Go oraz prymitywy sync i sync/atomic w skalowalnych rozwiązaniach backendowych


Dla kogo?

  • Programistów z praktyczną znajomością języka Go, budujących systemy o wysokiej współbieżności i dużym przepływie żądań

  • Zespołów tworzących brokery wiadomości, stream processory, schedulery oraz inne systemy rozproszone wymagające precyzyjnej kontroli współbieżności


Efekty kształcenia

  • Uczestnik analizuje działanie schedulera oraz model pamięci Go i wykorzystuje tę wiedzę do optymalizacji wydajności aplikacji

  • Uczestnik implementuje zaawansowane wzorce kanałów Go, takie jak pipelines, fan-out, fan-in oraz mechanizmy backpressure w systemach przetwarzania danych

  • Uczestnik wykorzystuje prymitywy synchronizacji Go w sposób bezpieczny i wydajny w środowisku produkcyjnym

  • Uczestnik wykrywa i eliminuje race condition oraz deadlocki z użyciem race detectora, pprof i narzędzi do profilowania współbieżności

  • Uczestnik projektuje mechanizmy graceful shutdown oraz structured concurrency w aplikacjach i mikroserwisach

  • Uczestnik stosuje zaawansowane wzorce architektoniczne, takie jak actor model, lock-free oraz systemy nadzoru w rozwiązaniach Go


Wymagania

  • Praktyczna umiejętność programowania w języku Go, znajomość goroutines, kanałów oraz interfejsu context.Context


W cenie otrzymasz:

  • Materiały szkoleniowe

  • Certyfikat ukończenia szkolenia

  • W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki

Program szkolenia

Pobierz program w PDF

Scheduler i model pamięci w Go

  • Jak działa scheduler w modelu M:N i jego trzy główne elementy: goroutine (G), wątek systemu operacyjnego (M) oraz kontekst wykonania (P). Rola zmiennej GOMAXPROCS w sterowaniu równoległością

  • Wywłaszczanie goroutine przez środowisko uruchomieniowe, etapy życia goroutine, sterowanie zachowaniem przez zmienną GODEBUG

  • Model pamięci w Go: relacja „dzieje się przed", widoczność zapisów między goroutinami, bariery pamięci

  • Ile naprawdę kosztuje przełączanie goroutine, jak działa planowanie i co się dzieje, gdy goroutine wykonuje operację blokującą

  • Diagnostyka schedulera: śledzenie wykonania, opcja GODEBUG=schedtrace oraz pakiet runtime/metrics

  • Analiza działania programu przy pomocy narzędzia go tool trace i wbudowanego mechanizmu śledzenia

Zaawansowane wzorce pracy z kanałami

  • Wieloetapowe potoki przetwarzania i ich składanie z funkcji zwracających kanały

  • Rozdzielanie pracy na wiele goroutine i scalanie wyników z powrotem

  • Radzenie sobie z sytuacją, gdy producent jest szybszy od konsumenta: bufory oraz strategie odrzucania najstarszych elementów, najnowszych elementów lub blokowania producenta

  • Rozsyłanie wiadomości do wielu odbiorców oraz wzorzec publikuj-subskrybuj z użyciem select i listy kanałów

  • Kanał sygnalizujący zakończenie pracy, anulowanie operacji i przekazywanie tych sygnałów między warstwami programu

  • Timer, Ticker i kanały czasowe w stabilnych pętlach obsługujących zdarzenia

  • Jak testować kod oparty na kanałach i jak budować scenariusze, które dają powtarzalne wyniki

Synchronizacja i mechanizmy niskopoziomowe

  • Praktyczne zastosowanie typów sync.Mutex, sync.RWMutex, sync.Once i sync.Cond

  • sync.Pool jako sposób na zmniejszenie liczby alokacji oraz jego ograniczenia

  • sync.Map i kiedy warto sięgnąć po niego zamiast zwykłej mapy chronionej muteksem

  • Pakiet sync/atomic oraz typy atomowe

  • Biblioteka errgroup i golang.org/x/sync/semaphore do kontrolowania liczby równolegle wykonywanych zadań

  • Współbieżność strukturalna: propozycje języka oraz wzorce stosowane obecnie w środowisku Go

  • Pakiet context jako sposób przekazywania sygnału anulowania i terminu wykonania zadania

Wyścigi, zakleszczenia i ich diagnostyka

  • Wbudowany wykrywacz wyścigów, jego typowe fałszywe wskazania i jak z nim pracować

  • Klasyczne pułapki: zapis bez zabezpieczenia, dzielona mapa między goroutinami, problemy przy iterowaniu po slajsie

  • Zakleszczenia: zagnieżdżone muteksy, kanały, których nikt nie zamyka, instrukcja select bez gałęzi domyślnej

  • Sytuacje, w których goroutine ciągle pracują, ale nie robią postępu, oraz takie, gdzie część z nich nigdy nie dostaje pracy. Sposoby zapobiegania

  • Profilowanie programów współbieżnych: profil muteksów, profil blokowań, profil goroutine

  • Narzędzia: debuger Delve, pakiet pprof, wykresy płomieniowe, ciągłe profilowanie z Pyroscope lub Parca

  • Testy losowe oraz testy obciążeniowe dla systemów wielowątkowych

Wzorce architektoniczne dla współbieżności

  • Pula procesów roboczych i pule, których rozmiar zmienia się w czasie pracy

  • Model aktorów w Go: biblioteki protoactor-go i hollywood oraz to, co Go zaczerpnęło z języka Erlang

  • Wzorce bez blokad: RCU, kolejki bez blokad, wskaźniki zagrożenia

  • Nadzorca procesów i drzewa nadzoru, automatyczne wznawianie pracy po błędach

  • Jak prawidłowo zatrzymać działający program: serwery HTTP, gRPC oraz odbiorcy z kolejek

  • Sterowanie długo działającymi zadaniami i strumieniowe przetwarzanie danych z kontrolą tempa

Autorem szkolenia jest Łukasz Andrzejewski

Od ponad 17 lat z pasją dzielę się wiedzą jako trener, wspierając rozwój kompetencji technologicznych wśród specjalistów IT na różnych etapach ich kariery. W ostatnich 5 latach przeszkoliłem ponad 2000 osób, prowadząc szkolenia zarówno otwarte, jak i dedykowane, dla czołowych firm z sektorów bankowości, ubezpieczeń i IT – m.in. Santander Bank Polska, ERGO Hestia, Asseco Poland oraz Orange. Specjalizuję się w szerokim zakresie technologii – od rozwiązań z ekosystemu Java, przez nowoczesny frontend,…

Wybrane opinie

Przeczytaj pozytywne opinie pochodzące z ankiet satysfakcji z naszych szkoleń wypełnianych wyłącznie przez ich uczestników po realizacji usługi

4.8
Ocena pochodzi ze średniej ocen Sages w serwisie Google i nie jest weryfikowanaŚrednia ocen Sages w serwisie Google Ocena pochodzi ze średniej ocen Sages w serwisie Google i nie jest weryfikowana

14.05.2026

Uczestnik szkoleniaArchitektura systemowa i integracja systemów dla analityków

Marcin Kubicki, ORLEN Paczka Sp. z o.o.

Widać, że prowadzący posiada dużą wiedzę, potrafi ją też dobrze zorganizować i przekazać. Potrafi zadbać o luźną i angażującą atmosferę, co ułatwia przyswajanie wiedzy mimo wielu godzin szkolenia. Prowadzący sprawia również wrażenie żywo zainteresowanego tematami jakie prezentuje.

Więcej opinii