03
Май
2020

Как в питоне запустить параллельно функцию в 2020 году?

хотел бы знать как в 2020году правильно запускать задачу в python3+ параллельно?

Задача имеется ввиду функция, которая будет исполняться на отдельной нити параллельно(т.е. multiprocessing не подходит).

Честно говоря, в интернете кроме как вызвать Thread и запустить его демоном(так я и делаю сейчас), больше ничего толкового не находится. Но кажется мне, что все-таки так делать это слишком ретроградно. Нагуглил тут pykka, и создание актора примерно так:

class Adder(pykka.ThreadingActor):
    def add_one(self, i):
        print(f'{self} is increasing {i}')
        return i + 1

Но опять же не хватает квалификации понять: будет ли это выполняться параллельно? В Python я новичек совсем, помогите... Может это совсем невозможно т.к. GIL и т.д.

Можно свести задачу к следующему: в одном потоке делать кое-что, в другое потоке по таймеру, вызывать еще одну функцию - в ней посылать rpc-запросы:

ПОТОК 1: блокирующая функция

ПОТОК 2: по таймеру вызываем rpc_send()

Источник: https://ru.stackoverflow.com/questions/1119482/%D0%9A%D0%B0%D0%BA-%D0%B2-%D0%BF%D0%B8%D1%82%D0%BE%D0%BD%D0%B5-%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E-%D0%B2-2020-%D0%B3%D0%BE%D0%B4%D1%83

Тебе может это понравится...

Добавить комментарий