Мне удалось решить проблему, добавив ()
после имени функции.
from multiprocessing import Process
from os import getpid
from random import randint
from time import time, sleep
def download_task():
time_to_download = randint(5, 10)
print("befor sleep")
sleep(time_to_download)
print("after sleep")
def main():
start = time()
p1 = Process(target=download_task())
p1.start()
p2 = Process(target=download_task())
p2.start()
p1.join()
p2.join()
end = time()
print('%.2f.' % (end - start))
main()
Если вы работаете на терминале, вы увидите сообщение об ошибке:
AttributeError: Can't get attribute 'download_task' on <module '__main__' (built-in)>
Очевидно, что при использовании только download_task
он обрабатывал download_task
как атрибут main, а не функции.