Как вызвать простую функцию и одновременно запустить следующие строки? - PullRequest
1 голос
/ 12 апреля 2020

Я знаю, что есть нечто, называемое потоком, но я запутался в этой сложной информации по всему Google. myFunc() занимает немного времени (не дорого в вычислительном отношении, скажем, воспроизвести короткий mp3-файл).

Я хочу позвонить по номеру myFunc() и не нужно ждать, пока он вернется, чтобы запустить следующие строки кода. Кроме того, мне не нужно хранить что-либо, связанное с myFunc(arg), мне нужно только, чтобы оно было выполнено только.

while(True):
    ......
    myFunc(arg)
    ###some
    ###lines
    ###of
    ###code

Извините за мой плохой Энгли sh. Ура!

1 Ответ

2 голосов
/ 12 апреля 2020
from threading import Thread

def myFunc(arg):
    # run code here

while(True):
    thread = Thread(target = myFunc, args = (arg, ))
    thread.start() # starts the thread, executes the function
    ###some
    ###lines
    ###of
    ###code
    thread.join() # wait for myFunc to finish

Вы можете сделать то же самое с процессами вместо потоков.

Возможно, вы захотите взглянуть на пулы, если вы хотите выполнить список аргументов с той же функцией. Вы можете вызвать imap, повторить результаты и вызвать остальную часть кода.

...