mirror of
https://github.com/python/cpython
synced 2026-09-29 12:10:30 +03:00
gh-98641: Document difference between task group and gather (#103644)
The purpose of the comments is to rule out the implication that asyncio.TaskGroup is a drop-in replacement / better alternative to asyncio.gather().
This commit is contained in:
parent
6be7aee18c
commit
4898415df7
1 changed files with 10 additions and 5 deletions
|
|
@ -256,8 +256,9 @@ Creating Tasks
|
|||
|
||||
.. note::
|
||||
|
||||
:meth:`asyncio.TaskGroup.create_task` is a newer alternative
|
||||
that allows for convenient waiting for a group of related tasks.
|
||||
:meth:`asyncio.TaskGroup.create_task` is a new alternative
|
||||
leveraging structural concurrency; it allows for waiting
|
||||
for a group of related tasks with strong safety guarantees.
|
||||
|
||||
.. important::
|
||||
|
||||
|
|
@ -340,7 +341,7 @@ Example::
|
|||
async with asyncio.TaskGroup() as tg:
|
||||
task1 = tg.create_task(some_coro(...))
|
||||
task2 = tg.create_task(another_coro(...))
|
||||
print("Both tasks have completed now.")
|
||||
print(f"Both tasks have completed now: {task1.result()}, {task2.result()}")
|
||||
|
||||
The ``async with`` statement will wait for all tasks in the group to finish.
|
||||
While waiting, new tasks may still be added to the group
|
||||
|
|
@ -459,8 +460,12 @@ Running Tasks Concurrently
|
|||
Tasks/Futures to be cancelled.
|
||||
|
||||
.. note::
|
||||
A more modern way to create and run tasks concurrently and
|
||||
wait for their completion is :class:`asyncio.TaskGroup`.
|
||||
A new alternative to create and run tasks concurrently and
|
||||
wait for their completion is :class:`asyncio.TaskGroup`. *TaskGroup*
|
||||
provides stronger safety guarantees than *gather* for scheduling a nesting of subtasks:
|
||||
if a task (or a subtask, a task scheduled by a task)
|
||||
raises an exception, *TaskGroup* will, while *gather* will not,
|
||||
cancel the remaining scheduled tasks).
|
||||
|
||||
.. _asyncio_example_gather:
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue