[Python-Dev] Pythonic concurrency - cooperative MT (original) (raw)

Antoine Pitrou solipsis at pitrou.net
Fri Sep 30 15:57:59 CEST 2005


Le vendredi 30 septembre 2005 à 08:32 -0500, skip at pobox.com a écrit :

>> (C) That scheduler is non-preemptive. A single greedy generator can >> starve all the others.

Antoine> Instead of looking at this as a problem, you could look at it Antoine> as a feature. Apple looked at it as a feature for years. Not anymore.

You are missing the context:

The latter is what we are discussing AFAIK: a different concurrency scheme inside a single application - not accross the whole OS or desktop.

Actually, I think different concurrency schemes must be chosen and mixed depending on the semantics. For example, when you have a networked GUI app, it can be good to have the network in one preemptive thread (using e.g. Twisted) and the GUI in another preemptive thread (using GTK, wx...). This is because GUI and network have different latency characteristics and requirements. (of course, you can replace "preemptive thread" with "process" in the above description)

So whatever innovatice concurrency scheme Python may come out, it should still be mixable with more traditional concurrency schemes, because required properties vary wildly even inside a single app.

Regards

Antoine.



More information about the Python-Dev mailing list