Long-polling, WebSocket и gRPC stream: в чём разница и когда их применять Long-polling: реализация push-механизма поверх HTTP клиент отправляет запрос, а сервер удерживает его открытым до появления новых данных после…
Чем различаются асинхронность, threading и мультипроцессинг Асинхронность работает в рамках одного потока: неблокирующие операции координируются через event loop, например с использованием async/await в JS и Python.…
Индексы B-Tree, Hash и BRIN в Postgres: различия и подходящие сценарии B-Tree — стандартный индекс Postgres для упорядоченных данных. Он обеспечивает быстрый поиск, сортировку и выполнение диапазонных запросов. Hash —…
Многопоточность CPU-bound и асинхронность IO-bound в .NET: как работает async/await CPU-bound: вычислительные задачи активно используют процессор и требуют параллельных потоков (Thread, Task) для одновременного…
Пессимистичные и оптимистичные блокировки Различие в стратегии обработки конфликтов: Пессимистичные: ресурс блокируется заранее, поскольку конфликт считается вероятным Оптимистичные: операции выполняются без…
Приостановка и блокировка потока: в чём отличие При приостановке (suspend) поток добровольно прекращает выполнение и ожидает внешнего сигнала При блокировке (block) поток ожидает ресурс или событие — например, I/O или…
основные единицы выполнения в ОС процесс — самостоятельный экземпляр программы с отдельным адресным пространством поток (thread) — облегчённая единица выполнения, работающая внутри процесса потоки используют общую…
процесс — независимая сущность со своей памятью поток — легковесная единица выполнения внутри процесса каждый процесс обладает отдельным адресным пространством потоки используют общую память и ресурсы своего процесса…
Транзакция представляет собой единый логический набор операций, гарантирующий атомарность и согласованность данных. Batch-insert выполняет массовую вставку записей с помощью одного SQL-запроса, повышая…
корутина будет создана, но сразу не запустится вместо выполнения вернётся объект типа coroutine корутина сохранит состояние ожидания запуска без await нельзя получить результат её работы или обработать исключения для…
В HTTP-клиенте Go тело ответа (resp.Body) необходимо закрывать, чтобы освободить занятые ресурсы Если этого не сделать, возможны утечки памяти и исчерпание файловых дескрипторов Кроме того, соединение в пуле…
Что будет, если читать из канала быстрее, чем в него записывают? Каналы Go обеспечивают блокирующую синхронизацию если данных нет, операция чтения заблокируется горутина будет ожидать отправки значения в канал пока…