[Python-ideas] Are there asynchronous generators?
Ron Adam
ron3200 at gmail.com
Mon Jun 29 23:51:10 CEST 2015
On 06/29/2015 07:23 AM, Nick Coghlan wrote:
>
> On 29 Jun 2015 7:33 pm, "Guido van Rossum"
> <guido at python.org
> <mailto:guido at python.org>> wrote:
> >
> > Not following this in detail, but want to note that async isn't a good
> model for parallelization (except I/O) because the expectation of
> coroutines is single threading. The event loop serializes callbacks.
> Changing this would break expectations and code.
>
> Yeah, it's a bad idea - I realised after reading your post that because
> submission for scheduling and waiting for a result can already be separated
> it should be possible in Py 3.5 to write a "parallel" asynchronous iterator
> that eagerly consumes the awaitables produced by another asynchronous
> iterator, schedules them all, then produces the awaitables in order.
>
> (That idea is probably as clear as mud without code to show what I mean...)
Only the parts concerning "schedules them all", and "produces awaitables in
order". ;-)
Async IO is mainly about recapturing idle cpu time while waiting for
relatively slow io. But it could also be a way to organise asynchronous code.
In the earlier example with circles, and each object having it's own
thread... And that running into the thousands, it can be rearranged a bit
if each scheduler has it's own thread. Then objects can be assigned to
schedulers instead of threads. (or something like that.)
Of course that's still clear as mud at this point, but maybe a different
colour of mud. ;-)
Cheers,
Ron
More information about the Python-ideas
mailing list