Python asyncio — отмена задачи `to_thread` не остановит потокPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python asyncio — отмена задачи `to_thread` не остановит поток

Сообщение Anonymous »

С помощью следующего фрагмента я не могу понять, почему бесконечная задача не отменяется (она продолжает рассылать спам «Я все еще стою»)
В режиме отладки Я вижу, что Задача, хранящаяся в незавершенном, действительно помечена как Отмененная, но очевидно, что поток не отменен/не уничтожен.
Почему поток не уничтожается, когда задача переноса отменена?
Что мне сделать, чтобы остановить поток?
import time
import asyncio

def quickTask():
time.sleep(1)

def infiniteTask():
while True:
time.sleep(1)
print("I'm still standing")

async def main():
finished, unfinished = await asyncio.wait({
asyncio.create_task(asyncio.to_thread(quickTask)),
asyncio.create_task(asyncio.to_thread(infiniteTask))
},
return_when = "FIRST_COMPLETED"
)

for task in unfinished:
task.cancel()
await asyncio.wait(unfinished)

print(" finished : " + str(len(finished))) # print '1'
print("unfinished : " + str(len(unfinished))) # print '1'

asyncio.run(main())


Подробнее здесь: https://stackoverflow.com/questions/714 ... the-thread
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Отмена фона выполнения задачи, когда пользователь нажимает на кнопку «Отмена
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Отмена фона выполнения задачи, когда пользователь нажимает на кнопку «Отмена
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Asyncio Async Funcitons вешает с Asyncio.gather. (Код работает без Asyncio.gather)
    Anonymous » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Остановит ли AutoEnable=false автоматическое включение Bluetooth во время запуска? (Ubuntu 24.04, Linux, Lenovo ThinkPad
    Anonymous » » в форуме Linux
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Отмените входящий звонок, когда звонящий остановит его
    Anonymous » » в форуме IOS
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»