Локальное хранилище тасклетов в Stackless Python - PullRequest
3 голосов
/ 01 июня 2011

Я начинаю со Stackless Python, так что это совершенно новый для меня мир. Я обычно использую обычные потоки, и они обычно имеют локальное хранилище потоков (TLS), которое это очень полезная функция, когда вам НЕ нужно делить память с другими потоками.

Итак, мне интересно, есть ли в Stackless Python что-то похожее: способ хранения локальной памяти (объект Python) для данного тасклета. Это возможно?

Спасибо заранее. -f

1 Ответ

1 голос
/ 20 сентября 2011

Solution1: TLS может быть смоделирован в stackless / greenlet с использованием текущего объекта тасклета, полученного вызовом stackless.getcurrent (), для хранения дополнительных данных.

Решение2: Если тасклет не поддерживает добавление дополнительных полей, у вас может быть глобальный WeakKeyDictionary , который будет иметь в качестве ключа слабой ссылки тасклет, а значение представляет ваш TLS.

...