About Stackless
An introduction for newcomers
Stackless Python is an enhanced version of the Python programming language. It allows programmers to reap the benefits of thread-based programming without the performance and complexity problems associated with conventional threads. The microthreads that Stackless adds to Python are a cheap and lightweight convenience which can if used properly, give the following benefits:
- Improved program structure.
- More readable code.
- Increased programmer productivity.
Features
For all the convenience gained through using Stackless, there is really only a minimal amount of functionality exposed through the stackless module. You can get more familiar with these aspects by reading the information provided in the following pages:
- Microthreads. The tasklet class is used to wrap functions allowing them to be launched as microthreads.
- Scheduling. A round robin scheduler is built in. It can be used to schedule tasklets either cooperatively or preemptively.
- Serialisation. Tasklets can be serialised to disk through pickling for later resumption of execution.
Further reading material
- Idioms: See the common ways that Stackless Python functionality is used.
- Applications: Read about some of the businesses and projects that Stackless Python has been used by.
Getting started
Installation
You either need to compile your own copy from the source code in CVS, or alternatively if you use Microsoft Windows, obtain the provided precompiled binaries to install over those in your existing Python installation.
The latest official release of Python which Stackless has been ported to is Python 2.3.3. Until the time is found to port it to later releases, anyone who wishes to use it will have to do so using this specific version.
There is a sprint planned for PyCon 2006 with the goal of doing the port to Python 2.4.2.
Learning to use Stackless
There are currently three main places that you can look to for information on how to use Stackless:
- The built-in documentation that comes in the stackless module that you import.
- The pages in the wiki on this web site.
- The mailing list archives.
Please feel free to email the mailing list with any questions you may have.
Stackless Python