запустить 3 функции в python многопоточности - PullRequest
0 голосов
/ 23 апреля 2020
from threading import Thread
def thread1(n):
    sum2=0
    for i in range(1, n+1):
        i+=1
        sum2+=i
        temp=sum2
        print(temp)
def thread2(n: int) -> bool: 
    if n < 2:
        return False
    for i in range (2, n):
        if n % i is 0: return False 
    return True
def thread3(n):
    ret = 1
    for i in range(1, n+1):
        ret *= i
        return ret
def main():
    n=100
    t1=Thread(target=thread1,args=())
    t2=Thread(target=thread2,args=())
    t3=Thread(target=thread3,args=())
    t1.start()
    t2.start()
    t3.start()
    t1.join()
    t2.join()
    t3.join()

Здравствуйте, я создаю код, который запускает эти 3 функции (с 1 по 3) одновременно. Сейчас у меня проблемы: я не уверен, что мой код правильный (ошибок до сих пор не было). Я впервые использую нить в python, так что вы не могли бы мне помочь?

1 Ответ

0 голосов
/ 23 апреля 2020

Все ваши три функции ожидают один параметр, n. Когда вы создаете поток, вам нужно предоставить имя функции, а также все параметры, которые нужны функции, поэтому вам потребуется что-то вроде этого:

t1=Thread(target=thread1,args=(n))

вместо

t1=Thread(target=thread1,args=())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...