在Python多线程中,一个线程的运行时间与1000个线程的运行时间是否相同?

时间:2018-08-02 09:18:17

标签: python-3.x multithreading

尝试以下说明多线程概念的python代码时,它花费了0.8秒。

import time
import threading

def calc_square(numbers):
    print("calculate square numbers")
    for n in numbers:
        time.sleep(0.2)
        print('square:',n*n)

def calc_cube(numbers):
    print("calculate cube of numbers")
    for n in numbers:
        time.sleep(0.2)
        print('cube:',n*n*n)

arr = [2,3,8,9]

t = time.time()


t1= threading.Thread(target=calc_square, args=(arr,))
t2= threading.Thread(target=calc_cube,args=(arr,))

t1.start()
t2.start()

t1.join()
t2.join()

print("done in : ",time.time()-t,"seconds")

每个函数在此处创建2个线程。如果再次创建线程,如t3,t4 ... t10,则花费了0.8秒。 1000个线程是否相同?  由于python中的for循环不是并行的,因此我们不能使用for循环来运行它。

  for i in range(1000):
    t1= threading.Thread(target=calc_square, args=(arr,))
    t1.start()
    t1.join()

无法使用。所以我的疑问是,对于1000个线程而言,是否同样的0.8秒?

0 个答案:

没有答案