Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 626новых вакансий за сутки·54 602вакансии открыты сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 579
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 395 кандидатов открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python8 901
  • Облачные технологии6 726
  • QA вакансии2 191
  • Android1 324
  • Инженер данных862
  • Продакт-менеджер318

Разработка

  • iOS1 240
  • Backend вакансии1 212
  • AI вакансии553
  • Fullstack вакансии503
  • Frontend вакансии428
  • Mobile вакансии28

По стеку

  • Go5 300
  • Java3 171
  • Kotlin1 128
  • Node.js1 016
  • Rust862
  • .NET676
  • PHP321
  • C++273
  • C#208

DevOps и инфраструктура

  • Kubernetes3 956
  • Linux-инфраструктура2 871
  • DevOps вакансии2 705
  • Terraform / IaC2 199
  • Мониторинг и Observability1 084
  • CI/CD920
  • SRE314
  • Кибербезопасность38

Аналитика и данные

  • Аналитик данных529
  • Data Scientist437
  • Бизнес-аналитик398
  • Системный аналитик68

Другие направления

  • Проджект-менеджер109
  • UI/UX дизайн67
  • Ручное тестирование14

По регионам

  • Вакансии в США25 820
  • Вакансии в Европе10 304
  • Работа в России3 646
  • Вакансии в Канаде2 269

По формату

  • Удалённые вакансии42 570
  • Релокация в США25 820
  • Гибридная работа5 725
  • Офисная работа4 498

По уровню

  • Senior вакансии22 658
  • Middle вакансии11 501
  • Junior вакансии3 898

Сейчас нанимают

Все компании
  • Wise192 вакансии
  • Rakuten189 вакансий
  • ASML164 вакансии
  • Grab134 вакансии
  • Celonis47 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace17 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме PythonВсе вопросы
PythonMiddleТеория

В каких случаях GIL почти не мешает?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

GIL почти не мешает: при однопоточном коде, I/O-bound нагрузке (потоки ждут на сети/диске/БД с release GIL), при работе через multiprocessing (отдельный GIL на процесс), при использовании C-extensions с PY_BEGIN_ALLOW_THREADS (NumPy, lxml, hashlib), и на free-threaded build (3.13+).

Пример

import hashlib
import time
from concurrent.futures import ThreadPoolExecutor


# I/O-bound: requests делает blocking recv — GIL отпускается
def fetch(url: str) -> int:
    import requests
    return requests.get(url, timeout=5).status_code


urls = ["https://example.com"] * 8
t = time.perf_counter()
with ThreadPoolExecutor(max_workers=8) as pool:
    results = list(pool.map(fetch, urls))
print(f"IO threads: {time.perf_counter() - t:.2f}s", results)


# CPU-bound в C-extension: hashlib отпускает GIL
DATA = b"x" * (1 << 24)  # 16 MiB


def hash_chunk(_: int) -> str:
    return hashlib.sha256(DATA).hexdigest()


t = time.perf_counter()
with ThreadPoolExecutor(max_workers=4) as pool:
    list(pool.map(hash_chunk, range(8)))
print(f"hashlib threads: {time.perf_counter() - t:.2f}s")
# Время близко к 1/N от однопоточного — GIL отпущен внутри hashlib

Когда GIL не bottleneck

  • Однопоточная программа. GIL вообще не вступает в игру — конкурентов нет.
  • I/O-bound multi-threading. Потоки большую часть времени ждут на recv/read/select — на blocking syscall GIL отпускается; запросы реально распараллеливаются.
  • asyncio. Один поток с event loop; GIL не влияет на пропускную способность async I/O.
  • multiprocessing. Каждый процесс — свой интерпретатор и свой GIL; CPU-bound масштабируется по ядрам.
  • C-extensions с release GIL. NumPy, SciPy, pandas (частично), lxml, hashlib, zlib, ssl, sqlite3, Pillow, cryptography, OpenCV — внутри тяжёлых операций делают Py_BEGIN_ALLOW_THREADS, что освобождает GIL до окончания работы.
  • subinterpreters (PEP 684, 3.12+) и free-threaded build (PEP 703, 3.13+ experimental) снимают/ослабляют ограничение GIL.
  • JIT runtimes: PyPy не имеет GIL? — на самом деле тоже имеет, но с stm/perf-оптимизациями. Полностью без GIL — IronPython, Jython, GraalPy.

Когда GIL «незаметен» из-за метрик

  • Bottleneck — БД/внешний API. Время в Python ничтожно по сравнению с round-trip.
  • Системные вызовы доминируют (logging на медленный диск, парсинг через системный JSON).
  • Используется gunicorn/uvicorn с несколькими воркерами — на уровне сервиса масштабирование уже идёт через процессы.

Как проверить

  • Профайлинг: py-spy --idle --threads покажет, ждут ли потоки I/O.
  • sys.getswitchinterval() — текущий quantum (по умолчанию 5 мс).
  • В нативных библиотеках смотрите наличие nogil/Py_BEGIN_ALLOW_THREADS в исходниках.

Подводные камни

  • Списывать высокую latency БД на GIL без профайлинга — почти всегда виновата сама БД или сеть.
  • Считать, что любой C-код освобождает GIL — нет, только тот, который явно это делает.
  • CPU-heavy callback в I/O thread pool ломает картину: GIL держится, остальные I/O потоки лагают.
  • На free-threaded build (3.13+) GIL ослаблен, но shared state требует явных lock-ов — code, который раньше «работал», начнёт race-ить.
  • multiprocessing спасает от GIL, но добавляет IPC overhead (pickle), shared-memory сложность и fork-проблемы на macOS/Windows.

Частые вопросы на собеседовании

  • Что такое truthy и falsy значения в Python?
  • Когда использовать threading?
  • Что такое type hints и зачем они нужны?
  • Как работает yield?

Типичные ошибки

  • Говорить, что GIL всегда bottleneck.
  • Не упоминать C-extensions.
  • Не предлагать профилирование.

Что проверяет интервьюер

  • Называет I/O-bound сценарии.
  • Знает про native extensions.
  • Понимает необходимость измерений.

Как вы знаете этот вопрос?

Проверить себя по теме Python →

Источники

  • https://docs.python.org/3/library/threading.html
  • https://peps.python.org/pep-0703/

Связанные темы

Pythonperformancethreading

Вакансии с этим навыком

Python вакансии
  • Product Manager / Product Analyst
  • Senior Python-разработчик
  • Fullstack-разработчик (Node.js/React)
  • Product Quality and Reliability Engineer
  • United States Wi-Fi System Engineer IRC307227