Зеленые потоки эмулируют многопоточные среды, не полагаясь на какие-либо возможности ОС, и управляются ими в пространстве пользователя, а не в пространстве ядра, что позволяет им работать в средах, которые не поддерживают встроенный поток.
Нити Python реализованы как pthreads (kernel threads)
,
и из-за блокировки глобального интерпретатора (GIL) процесс Python запускает только один поток за раз.
[ Вопрос]
Но в случае Green-threads
(или так называемой зеленой или талисманы),
- Влияет ли на него
GIL
на них? Может ли быть более одной зелёной работает одновременно?- Каковы подводные камни использования зеленых или таблеток?
- Если я использую зелья, сколько из них может обрабатывать процесс? (Мне интересно, потому что в одном процессе вы можете открывать темы до ulimit (-s, -v), установленный в вашей системе * ix.)
Мне нужно немного понять, и это поможет, если кто-то сможет поделиться своим опытом или вести меня по правильному пути.