Недавно я начал изучать многопоточность и хотел реализовать ее в следующем коде.
import timeit
start = timeit.default_timer()
def func(num):
s = [(i, j, k) for i in range(num) for j in range(num) for k in range(num)]
return s
z = 150
a,b = func(z),func(z)
print(a[:5], b[:5])
stop = timeit.default_timer()
print("time: ", stop - start)
время, которое потребовалось:
time: 3.7628489000000003
Поэтому я попытался использовать модуль Threading и изменил код следующим образом:
import timeit
from threading import Thread
start = timeit.default_timer()
def func(num):
s = [(i, j, k) for i in range(num) for j in range(num) for k in range(num)]
print(s[:5])
a = Thread(target=func, args=(150,))
b = Thread(target=func, args=(150,))
a.start()
b.start()
a.join()
b.join()
stop = timeit.default_timer()
print("time: ", stop - start)
время, которое потребовалось:
time: 4.2522736
Но вместо этого он должен уменьшиться вдвое, а увеличиться. Что-то не так в моей реализации? Пожалуйста, объясните, что пошло не так или есть лучший способ добиться этого.