Excuse my ignorance (or maybe it's a vocabulary thing), but I'm trying to understand the problem here.
But if I have this right: I've been using asyncio a lot lately and have encountered this problem > several times. Imagine you want to do a lot of queries against a database, > spawning 10000 tasks in parallel will probably cause a lot of them to fail. > async is not parallel -- all the tasks will be run in the same thread (Unless you explicitly spawn another thread), and only one task is running at once, and the task switching happens when the task specifically releases itself. If it matters in what order the tasks are performed, then you should not be using async. So why do queries fail with 10000 tasks? or ANY number? If the async DB access code is written right, a given query should not "await" unless it is in a safe state to do so. So what am I missing here??? What you need in a task pool of sorts, to limit concurrency and do only 20 > requests in parallel. > still wrapping my head around the vocabulary, but async is not concurrent. If we were doing this synchronously, we wouldn't spawn 10000 threads using > 10000 connections, > and threads aren't synchronous -- but they are concurrent. > we would use a thread pool with a limited number of threads and submit the > jobs into its queue. > because threads ARE concurrent, and there is no advantage to having more threads than can actually run at once, and having many more does cause thread-switching performance issues. To me, tasks are (somewhat) logically analogous to threads. > kinda -- in the sense that they are run (and completed) in arbitrary order, But they are different, and that difference is key to this issue. As Yury expressed interest in this idea, there must be something I'm missing. What is it? -CHB -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception chris.bar...@noaa.gov
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com