Introduction to Concurrent Programming with Stackless Python - because sometimes a very large number of microthreads is the appropriate level of abstraction. As can be seen in various Erlang programs. Stackless provides similar abstractions, or rather comparable to the Actor libraries in Clojure and Scala (basically the Erlang Actor Model without distribution across multiple computers). The GIL remains a problem, of course, which is why Manycore is not well supported, at least not without programming for it (via multiprocessing, for example).