162 читали · 2 года назад
Программирование на Python. Многозадачность. Потоки. Threading. Ещё об очереди queue
Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео. Продолжение статьи о queue. Использование очереди queue при обмене данными между потоками Сегодня продолжу материалы по использованию модуля queue для взаимодействия между потоками. Напомню, что очередь работает по принципу "первым пришёл, первым ушёл". В сущности механизм FIFO, который рассматривали в отношении процессов...
1 месяц назад
🔹 GIL: почему Python блокирует потоки (и что с этим делать
) 🔹 Что такое GIL и как он влияет на threading и parallelism? 🔸 GIL (Global Interpreter Lock) появился, чтобы защитить внутреннее состояние CPython — в основном простая реализация счётчика ссылок и структуры объектов. Без GIL пришлось бы тонко синхронизировать доступ на C‑уровне, что сильно усложнило бы реализацию интерпретатора. 🔸 GIL сериализует выполнение байт-кода, поэтому в CPU‑bound (CPU — Central Processing Unit) задачах потоки (threading) в CPython не дают настоящего параллелизма. Для IO (Input/Output) потоков выигрыш остаётся полезным...