I want to use threading package to calculate the square of num and my code like,
import threading
def my_squr(num):   #if this function take long time to run
    print(num*num)
    return num*num
if __name__ == "__main__":
    l1 = [1,3,5,7,11,13,15,17]
    for i, item in enumerate(l1):
        if i % 3 == 0:
            t1 = threading.Thread(target=my_squr, args=(item,))
            t1.start()
            t1.join()
        elif i % 3 == 1:
            t2 = threading.Thread(target=my_squr, args=(item,))
            t2.start()
            t2.join()
        else:
            t3 = threading.Thread(target=my_squr, args=(item,))
            t3.start()
            t3.join()
    # t1.join()
    # t2.join()
    # t3.join()
    print("Done")
However, I am confused about where should I put the join() method.Although, they both get same answer, I guess there are some differeces between them.
 
     
     
    