Я попробовал использовать модуль multiprocessing, но столкнулся с несколькими проблемами:
- Если бы я использовал multiprocessing.Process, его можно было бы завершить, но я не смог бы получить результат.
- Если бы я использовал multiprocessing.pool, он вернул бы значение, но я не смог найти способ завершить его.
Вот мой нефункциональный код:
Код: Выделить всё
import time
def foo(bar, baz):
time.sleep(1)
print('hello {0}'.format(bar))
return 'foo'+baz
from multiprocessing.pool import ThreadPool
pool = ThreadPool(processes=1)
async_result = pool.apply_async(foo, ('world', 'foo'))
return_val = async_result.get() # Tried to execute as a thread
time.sleep(0.5)
pool.terminate()
print(return_val)
Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-python