LINUX.ORG.RU

В CPython (дефолтной реализации) не могут, ставь Jython или используй multiprocessing.

anonymous
()

CPython'овский GIL в общем случае не позволяет одновременно работать более чем одному треду интерпретатора. Только если тред ушёл в долгий нативный вызов, он позволяет в это время работать другим тредам. Некоторые другие интерпретаторы, например Jython, такого ограничения не имеют.

proud_anon ★★★★★
()
Последнее исправление: proud_anon (всего исправлений: 2)
Ответ на: комментарий от proud_anon

ушёл в долгий нативный вызов

Когда и где отпускать GIL решают разрабы библиотеки и делается это руками в коде.

true_admin ★★★★★
()
Ответ на: комментарий от Aeon

есть без гила с стм, но оно ещё очень далеко от реального использования

Я читал, что оно где-то применяется кем-то. Но если нет, то нет.

hateyoufeel ★★★★★
()
Ответ на: комментарий от itn

А разве питон сам не лочит поток раз в N тиков?

Как ты себе это представляешь? :) У них глобальные переменные, как только два потока пошли исполнять питоновский код наступает пипец. Он переключает потоки раз в 100 тиков (по дефолту).

true_admin ★★★★★
()
Ответ на: комментарий от zz

я не хочу менеджить лок интепритатора руками, когда я пишу бингинг.

Я понял, ты хочешь чтобы питоновские функции автоматом оборачивались в локи. Я уверен что от этого отказались из-за тормозов. Для скорости блокировку нужно брать один раз на весь питонячий блок кода, а не каждый раз дёргать на каждый вызов. Как это сделать без какого-нить препроцессора непонятно.

true_admin ★★★★★
()

Используй Pool для своих задач.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.