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 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.