Skip to content

Instantly share code, notes, and snippets.

View zhashkevych's full-sized avatar
🚀

zhashkevych

🚀
View GitHub Profile
@zhashkevych
zhashkevych / Dockerfile
Last active April 27, 2024 03:37
Wait for Postgres initialization in Docker-Compose
FROM golang:1.14-buster
RUN go version
ENV GOPATH=/
COPY ./ ./
# install psql
RUN apt-get update
RUN apt-get -y install postgresql-client
@zhashkevych
zhashkevych / threadsvsgoroutines.md
Last active April 16, 2024 17:10
Основные различия между потоками ОС и горутинами языка Go
Потоки Горутины
Потоки ОС управляются ядром ОС Горутины управляются "рантаймом" Go
Потоки ОС в основном имееют фиксированый размер в 1-2MB Горутины обычно имеют размер стэка 2KB
Размер стэка определяется во время компиляции и не может увеличиватся Размер стэка определяется во время рантайма и может расти вплоть до 1GB что возможно благодаря аллокации и освобождения места из хипа
У потоков нету простого способа коммуникации между собой. Такая коммуникация имеет большую задержку Горутины используют "каналы" для быстрого общения между собой с маленькой задержкой