[Python-Dev] Pythonic concurrency - cooperative MT
Simon Wittber
simonwittber at gmail.com
Fri Sep 30 16:32:55 CEST 2005
On 9/30/05, Antoine Pitrou <solipsis at pitrou.net> wrote:
>
> > (C) That scheduler is non-preemptive. A single
> > greedy generator can starve all the others.
>
> Instead of looking at this as a problem, you could look at it as a
> feature. Since generators can't be switched at arbitrary places, the
> programmer has to define his/her synchronization points explicitly.
I use this approach extensively, using tasks which are defined using
generators. The scheduler I developed for this can be viewed here:
http://metaplay.dyndns.org:82/svn/nanothreads/nanothreads.py
Synchronization using yield statements is an important feature, as I
use these cooperative threads for game development. These threads are
_very_ useful for games, as they have very low overhead, and allow the
programmer to exercise more control over their execution.
Sw.
More information about the Python-Dev
mailing list