Следующий код выполняет каждую операцию в отдельном процессе:
from multiprocessing import Pool
import timeit
def doubler(number):
return number * 2
if __name__ == '__main__':
start = timeit.timeit()
numbers = [1,2,3,4,5,6,7,8,9]
pool = Pool(processes=9)
print(pool.map(doubler, numbers))
end = timeit.timeit()
print(end - start)
Как видите, в коне работы скрипта я выводу время, за которое он выполнился.
Я понимаю, что оно будет каждый раз отличаться. но мне не понятно почему иногда оно является отрицательной величиной. Объясните пожалуйста
kalinin@md ~/python/project1 $ python3 index.py
[2, 4, 6, 8, 10, 12, 14, 16, 18]
-0.00011791801080107689
kalinin@md ~/python/project1 $ python3 index.py
[2, 4, 6, 8, 10, 12, 14, 16, 18]
3.108987584710121e-05
kalinin@md ~/python/project1 $ python3 index.py
[2, 4, 6, 8, 10, 12, 14, 16, 18]
-4.2076921090483665e-05
kalinin@md ~/python/project1 $ python3 index.py
[2, 4, 6, 8, 10, 12, 14, 16, 18]
4.149484448134899e-05
kalinin@md ~/python/project1 $ python3 index.py
[2, 4, 6, 8, 10, 12, 14, 16, 18]
-0.00013088202103972435
kalinin@md ~/python/project1 $ python3 index.py
[2, 4, 6, 8, 10, 12, 14, 16, 18]
0.00017258897423744202