asyncio-llapi-index.md · Markdown – Документация Python
Документация Python неофициальный перевод

asyncio-llapi-index.md

234 строк · 27.4 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.11/library/asyncio-llapi-index.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Индекс низкоуровневого API89На этой странице перечислены все низкоуровневые API asyncio.1011## Получение цикла событий1213| [`asyncio.get_running_loop()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.get_running_loop) | **Предпочтительная** функция для получения работающего цикла событий. |14| --- | --- |15| [`asyncio.get_event_loop()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.get_event_loop) | Получить экземпляр цикла событий (работающий или текущий через текущую политику). |16| [`asyncio.set_event_loop()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.set_event_loop) | Установить цикл событий как текущий через текущую политику. |17| [`asyncio.new_event_loop()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.new_event_loop) | Создаёт новый цикл событий. |1819Примеры2021- [Использование asyncio.get\_running\_loop()](https://python-all.ru/3.11/library/asyncio-future.html#asyncio-example-future).2223## Методы цикла событий2425См. также основной раздел документации о [методах цикла событий](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio-event-loop-methods).2627Жизненный цикл2829| [`loop.run_until_complete()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.run_until_complete) | Запускает Future, задачу или ожидаемый объект до завершения. |30| --- | --- |31| [`loop.run_forever()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.run_forever) | Запускает цикл событий бесконечно. |32| [`loop.stop()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.stop) | Останавливает цикл событий. |33| [`loop.close()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.close) | Закрывает цикл событий. |34| [`loop.is_running()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.is_running) | Возвращает `True`, если цикл событий работает. |35| [`loop.is_closed()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.is_closed) | Возвращает `True`, если цикл событий закрыт. |36| `await` [`loop.shutdown_asyncgens()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.shutdown_asyncgens) | Закрывает асинхронные генераторы. |3738Отладка3940| [`loop.set_debug()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.set_debug) | Включает или отключает режим отладки. |41| --- | --- |42| [`loop.get_debug()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.get_debug) | Возвращает текущий режим отладки. |4344Планирование колбэков4546| [`loop.call_soon()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.call_soon) | Вызывает колбэк в ближайшее время. |47| --- | --- |48| [`loop.call_soon_threadsafe()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.call_soon_threadsafe) | Потокобезопасный вариант [`loop.call_soon()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.call_soon). |49| [`loop.call_later()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.call_later) | Вызывает колбэк *через* указанное время. |50| [`loop.call_at()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.call_at) | Вызывает колбэк *в* указанное время. |5152Пул потоков/процессов5354| `await` [`loop.run_in_executor()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.run_in_executor) | Запускает CPU-интенсивную или другую блокирующую функцию в [`concurrent.futures`](https://python-all.ru/3.11/library/concurrent.futures.html#module-concurrent.futures) исполнителе. |55| --- | --- |56| [`loop.set_default_executor()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.set_default_executor) | Устанавливает исполнитель по умолчанию для [`loop.run_in_executor()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.run_in_executor). |5758Задачи и Future5960| [`loop.create_future()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.create_future) | Создаёт объект [`Future`](https://python-all.ru/3.11/library/asyncio-future.html#asyncio.Future). |61| --- | --- |62| [`loop.create_task()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.create_task) | Планирует корутину как [`Task`](https://python-all.ru/3.11/library/asyncio-task.html#asyncio.Task). |63| [`loop.set_task_factory()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.set_task_factory) | Устанавливает фабрику, используемую [`loop.create_task()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.create_task) для создания [`Tasks`](https://python-all.ru/3.11/library/asyncio-task.html#asyncio.Task). |64| [`loop.get_task_factory()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.get_task_factory) | Возвращает фабрику, которую [`loop.create_task()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.create_task) использует для создания [`Tasks`](https://python-all.ru/3.11/library/asyncio-task.html#asyncio.Task). |6566DNS6768| `await` [`loop.getaddrinfo()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.getaddrinfo) | Асинхронная версия [`socket.getaddrinfo()`](https://python-all.ru/3.11/library/socket.html#socket.getaddrinfo). |69| --- | --- |70| `await` [`loop.getnameinfo()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.getnameinfo) | Асинхронная версия [`socket.getnameinfo()`](https://python-all.ru/3.11/library/socket.html#socket.getnameinfo). |7172Сеть и IPC7374| `await` [`loop.create_connection()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.create_connection) | Открывает TCP-соединение. |75| --- | --- |76| `await` [`loop.create_server()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.create_server) | Создаёт TCP-сервер. |77| `await` [`loop.create_unix_connection()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.create_unix_connection) | Открывает соединение через Unix-сокет. |78| `await` [`loop.create_unix_server()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.create_unix_server) | Создаёт сервер Unix-сокетов. |79| `await` [`loop.connect_accepted_socket()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.connect_accepted_socket) | Оборачивает [`socket`](https://python-all.ru/3.11/library/socket.html#socket.socket) в пару `(transport, protocol)` . |80| `await` [`loop.create_datagram_endpoint()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.create_datagram_endpoint) | Открывает датаграммное (UDP) соединение. |81| `await` [`loop.sendfile()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.sendfile) | Отправляет файл через транспорт. |82| `await` [`loop.start_tls()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.start_tls) | Обновляет существующее соединение до TLS. |83| `await` [`loop.connect_read_pipe()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.connect_read_pipe) | Оборачивает конец чтения канала в пару `(transport, protocol)`. |84| `await` [`loop.connect_write_pipe()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.connect_write_pipe) | Оборачивает конец записи канала в пару `(transport, protocol)`. |8586Сокеты8788| `await` [`loop.sock_recv()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.sock_recv) | Получает данные из [`socket`](https://python-all.ru/3.11/library/socket.html#socket.socket). |89| --- | --- |90| `await` [`loop.sock_recv_into()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.sock_recv_into) | Получает данные из [`socket`](https://python-all.ru/3.11/library/socket.html#socket.socket) в буфер. |91| `await` [`loop.sock_recvfrom()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.sock_recvfrom) | Получает датаграмму из [`socket`](https://python-all.ru/3.11/library/socket.html#socket.socket). |92| `await` [`loop.sock_recvfrom_into()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.sock_recvfrom_into) | Получает датаграмму из [`socket`](https://python-all.ru/3.11/library/socket.html#socket.socket) в буфер. |93| `await` [`loop.sock_sendall()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.sock_sendall) | Отправляет данные в [`socket`](https://python-all.ru/3.11/library/socket.html#socket.socket). |94| `await` [`loop.sock_sendto()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.sock_sendto) | Отправляет датаграмму через [`socket`](https://python-all.ru/3.11/library/socket.html#socket.socket) по указанному адресу. |95| `await` [`loop.sock_connect()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.sock_connect) | Подключает [`socket`](https://python-all.ru/3.11/library/socket.html#socket.socket). |96| `await` [`loop.sock_accept()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.sock_accept) | Принимает соединение [`socket`](https://python-all.ru/3.11/library/socket.html#socket.socket). |97| `await` [`loop.sock_sendfile()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.sock_sendfile) | Отправляет файл через [`socket`](https://python-all.ru/3.11/library/socket.html#socket.socket). |98| [`loop.add_reader()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.add_reader) | Начинает наблюдение за файловым дескриптором на готовность к чтению. |99| [`loop.remove_reader()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.remove_reader) | Прекращает наблюдение за файловым дескриптором на готовность к чтению. |100| [`loop.add_writer()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.add_writer) | Начать наблюдение за файловым дескриптором на готовность к записи. |101| [`loop.remove_writer()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.remove_writer) | Прекратить наблюдение за файловым дескриптором на готовность к записи. |102103Сигналы Unix104105| [`loop.add_signal_handler()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.add_signal_handler) | Добавить обработчик для [`signal`](https://python-all.ru/3.11/library/signal.html#module-signal). |106| --- | --- |107| [`loop.remove_signal_handler()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.remove_signal_handler) | Удалить обработчик для [`signal`](https://python-all.ru/3.11/library/signal.html#module-signal). |108109Подпроцессы110111| [`loop.subprocess_exec()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.subprocess_exec) | Запустить подпроцесс. |112| --- | --- |113| [`loop.subprocess_shell()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.subprocess_shell) | Запустить подпроцесс из команды оболочки. |114115Обработка ошибок116117| [`loop.call_exception_handler()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.call_exception_handler) | Вызвать обработчик исключений. |118| --- | --- |119| [`loop.set_exception_handler()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.set_exception_handler) | Установить новый обработчик исключений. |120| [`loop.get_exception_handler()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.get_exception_handler) | Получить текущий обработчик исключений. |121| [`loop.default_exception_handler()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.default_exception_handler) | Реализация обработчика исключений по умолчанию. |122123Примеры124125- [Использование asyncio.new\_event\_loop() и loop.run\_forever()](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio-example-lowlevel-helloworld).126- [Использование loop.call\_later()](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio-example-call-later).127- Использование `loop.create_connection()` для реализации [эхо-клиента](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio-example-tcp-echo-client-protocol).128- Использование `loop.create_connection()` для [подключения сокета](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio-example-create-connection).129- [Использование add\_reader() для наблюдения за FD на события чтения](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio-example-watch-fd).130- [Использование loop.add\_signal\_handler()](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio-example-unix-signals).131- [Использование loop.subprocess\_exec()](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio-example-subprocess-proto).132133## Транспорты134135Все транспорты реализуют следующие методы:136137| [`transport.close()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.BaseTransport.close) | Закрывает транспорт. |138| --- | --- |139| [`transport.is_closing()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.BaseTransport.is_closing) | Возвращает `True`, если транспорт закрывается или уже закрыт. |140| [`transport.get_extra_info()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.BaseTransport.get_extra_info) | Запросить информацию о транспорте. |141| [`transport.set_protocol()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.BaseTransport.set_protocol) | Устанавливает новый протокол. |142| [`transport.get_protocol()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.BaseTransport.get_protocol) | Возвращает текущий протокол. |143144Транспорты, которые могут получать данные (TCP- и Unix-соединения, каналы и т.д.). Возвращаются из методов, таких как [`loop.create_connection()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.create_connection), [`loop.create_unix_connection()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.create_unix_connection), [`loop.connect_read_pipe()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.connect_read_pipe) и т.д.:145146Транспорты для чтения147148| [`transport.is_reading()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.ReadTransport.is_reading) | Возвращает `True`, если транспорт принимает данные. |149| --- | --- |150| [`transport.pause_reading()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.ReadTransport.pause_reading) | Приостановить приём. |151| [`transport.resume_reading()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.ReadTransport.resume_reading) | Возобновить приём. |152153Транспорты, которые могут отправлять данные (TCP- и Unix-соединения, каналы и т.д.). Возвращаются методами [`loop.create_connection()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.create_connection), [`loop.create_unix_connection()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.create_unix_connection), [`loop.connect_write_pipe()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.connect_write_pipe) и т.д.:154155Транспорты записи156157| [`transport.write()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.WriteTransport.write) | Записать данные в транспорт. |158| --- | --- |159| [`transport.writelines()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.WriteTransport.writelines) | Записать буферы в транспорт. |160| [`transport.can_write_eof()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.WriteTransport.can_write_eof) | Возвращает [`True`](https://python-all.ru/3.11/library/constants.html#True), если транспорт поддерживает отправку EOF. |161| [`transport.write_eof()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.WriteTransport.write_eof) | Закрыть и отправить EOF после сброса буферизованных данных. |162| [`transport.abort()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.WriteTransport.abort) | Немедленно закрыть транспорт. |163| [`transport.get_write_buffer_size()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.WriteTransport.get_write_buffer_size) | Возвращает текущий размер выходного буфера. |164| [`transport.get_write_buffer_limits()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.WriteTransport.get_write_buffer_limits) | Возвращает верхнюю и нижнюю отметки для управления потоком записи. |165| [`transport.set_write_buffer_limits()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.WriteTransport.set_write_buffer_limits) | Устанавливает новые верхнюю и нижнюю отметки для управления потоком записи. |166167Транспорты, возвращаемые [`loop.create_datagram_endpoint()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.create_datagram_endpoint):168169Транспорты дейтаграмм170171| [`transport.sendto()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.DatagramTransport.sendto) | Отправить данные удалённому узлу. |172| --- | --- |173| [`transport.abort()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.DatagramTransport.abort) | Немедленно закрыть транспорт. |174175Низкоуровневая абстракция транспорта над подпроцессами. Возвращается [`loop.subprocess_exec()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.subprocess_exec) и [`loop.subprocess_shell()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.loop.subprocess_shell):176177Транспорты подпроцессов178179| [`transport.get_pid()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.SubprocessTransport.get_pid) | Возвращает идентификатор процесса подпроцесса. |180| --- | --- |181| [`transport.get_pipe_transport()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.SubprocessTransport.get_pipe_transport) | Возвращает транспорт для запрошенного канала связи (*stdin*, *stdout* или *stderr*). |182| [`transport.get_returncode()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.SubprocessTransport.get_returncode) | Возвращает код возврата подпроцесса. |183| [`transport.kill()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.SubprocessTransport.kill) | Завершает подпроцесс. |184| [`transport.send_signal()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.SubprocessTransport.send_signal) | Отправить сигнал подпроцессу. |185| [`transport.terminate()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.SubprocessTransport.terminate) | Останавливает подпроцесс. |186| [`transport.close()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.SubprocessTransport.close) | Завершить подпроцесс и закрыть все каналы. |187188## Протоколы189190Классы протоколов могут реализовывать следующие **методы-колбэки**:191192| `callback` [`connection_made()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.BaseProtocol.connection_made) | Вызывается при установлении соединения. |193| --- | --- |194| `callback` [`connection_lost()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.BaseProtocol.connection_lost) | Вызывается при потере или закрытии соединения. |195| `callback` [`pause_writing()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.BaseProtocol.pause_writing) | Вызывается, когда буфер транспорта превышает верхнюю отметку. |196| `callback` [`resume_writing()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.BaseProtocol.resume_writing) | Вызывается, когда буфер транспорта опускается ниже нижней отметки. |197198Потоковые протоколы (TCP, Unix-сокеты, каналы)199200| `callback` [`data_received()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.Protocol.data_received) | Вызывается при получении данных. |201| --- | --- |202| `callback` [`eof_received()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.Protocol.eof_received) | Вызывается при получении EOF. |203204Буферизированные потоковые протоколы205206| `callback` [`get_buffer()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.BufferedProtocol.get_buffer) | Вызывается для выделения нового буфера приёма. |207| --- | --- |208| `callback` [`buffer_updated()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.BufferedProtocol.buffer_updated) | Вызывается, когда буфер был обновлён полученными данными. |209| `callback` [`eof_received()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.BufferedProtocol.eof_received) | Вызывается при получении EOF. |210211Протоколы дейтаграмм212213| `callback` [`datagram_received()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.DatagramProtocol.datagram_received) | Вызывается при получении дейтаграммы. |214| --- | --- |215| `callback` [`error_received()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.DatagramProtocol.error_received) | Вызывается, когда предыдущая операция отправки или получения вызывает исключение [`OSError`](https://python-all.ru/3.11/library/exceptions.html#OSError). |216217Протоколы подпроцессов218219| `callback` [`pipe_data_received()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.SubprocessProtocol.pipe_data_received) | Вызывается, когда дочерний процесс записывает данные в свой канал *stdout* или *stderr*. |220| --- | --- |221| `callback` [`pipe_connection_lost()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.SubprocessProtocol.pipe_connection_lost) | Вызывается, когда один из каналов, используемых для связи с дочерним процессом, закрывается. |222| `callback` [`process_exited()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.SubprocessProtocol.process_exited) | Вызывается после завершения дочернего процесса. Может быть вызван до методов [`pipe_data_received()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.SubprocessProtocol.pipe_data_received) и [`pipe_connection_lost()`](https://python-all.ru/3.11/library/asyncio-protocol.html#asyncio.SubprocessProtocol.pipe_connection_lost). |223224## Политики цикла событий225226Политики – это низкоуровневый механизм для изменения поведения функций, таких как [`asyncio.get_event_loop()`](https://python-all.ru/3.11/library/asyncio-eventloop.html#asyncio.get_event_loop). Дополнительные сведения см. также в основном [разделе о политиках](https://python-all.ru/3.11/library/asyncio-policy.html#asyncio-policies).227228Доступ к политикам229230| [`asyncio.get_event_loop_policy()`](https://python-all.ru/3.11/library/asyncio-policy.html#asyncio.get_event_loop_policy) | Возвращает текущую политику для всего процесса. |231| --- | --- |232| [`asyncio.set_event_loop_policy()`](https://python-all.ru/3.11/library/asyncio-policy.html#asyncio.set_event_loop_policy) | Устанавливает новую общепроцессную политику. |233| [`AbstractEventLoopPolicy`](https://python-all.ru/3.11/library/asyncio-policy.html#asyncio.AbstractEventLoopPolicy) | Базовый класс для объектов политики. |234