Зачем Go runtime использует “work stealing” и как устроена эта модель? concurrency model Go (Goroutine scheduler) сокращение простоя CPU за счёт динамической балансировки нагрузки каждый P (processor) располагает…
ограничение GIL (Global Interpreter Lock) в CPython GIL не позволяет нескольким потокам одновременно выполнять байт-код и гарантирует безопасный доступ к объектам без сложных механизмов синхронизации из-за этого…
горутины — лёгкие, однако они всё же расходуют память и CPU создание без ограничений → увеличение потребления RAM и расходы на планирование способно вызвать истощение ресурсов и привести к остановке приложения для…
Чем различаются асинхронность, threading и мультипроцессинг Асинхронность работает в рамках одного потока: неблокирующие операции координируются через event loop, например с использованием async/await в JS и Python.…
основные единицы выполнения в ОС процесс — самостоятельный экземпляр программы с отдельным адресным пространством поток (thread) — облегчённая единица выполнения, работающая внутри процесса потоки используют общую…
процесс — независимая сущность со своей памятью поток — легковесная единица выполнения внутри процесса каждый процесс обладает отдельным адресным пространством потоки используют общую память и ресурсы своего процесса…
Как работает барьерная операция в параллельной очереди? параллельная очередь — выполнение задач несколькими потоками барьерная операция — специальная точка синхронизации до прохождения барьера — задачи обрабатываются…
Mutex: назначение, разновидности и применение Mutex — примитив синхронизации, защищающий данные от одновременного доступа Реализует взаимное исключение: владеть mutex одновременно способен только один поток Основные…
Что понимают под многопоточным программированием в .NET? подход, при котором несколько потоков выполняются параллельно в .NET потоки можно создавать с помощью класса Thread либо задач (Task) из TPL позволяет…