What are sub-interpreters, and how do they differ from threads and from separate processes?

Technical