Dobrý den,
pokud tuto část kódu s paralelními procesy spustím v PyCharm, funguje podle očekávání.
import time
import multiprocessing
from datetime import datetime
def function1():
print(datetime.now(), 'start function1')
time.sleep(2)
print(datetime.now(), 'end function1')
return 5
def function2():
print(datetime.now(), 'start function2')
time.sleep(3)
print(datetime.now(), 'end function2')
return 6
def process_paraller(fcn1, fcn2):
pool = multiprocessing.Pool(multiprocessing.cpu_count())
res1 = pool.apply_async(fcn1)
res2 = pool.apply_async(fcn2)
pool.close()
pool.join()
return [res1.get(), res2.get()]
if __name__ == '__main__':
input('click to start')
print('starting')
results = process_paraller(function1, function2)
print('results:', results)
input('press key to exit...')
-----
click to start
starting
2021-02-20 00:47:17.465289 start function1
2021-02-20 00:47:17.474281 start function2
2021-02-20 00:47:19.477176 end function1
2021-02-20 00:47:20.474548 end function2
results: [5, 6]
press key to exit...
Pokud ale udělám build a spustím ho, program se začne cyklit a musím ho ukončit, jinak mi pc zamrzne.
Výstup z konzole po jednom kliknutí vypadá takto
Nějak se mi nedaří zjistit, proč to tak je. Nemá s tím někdo zkušenosti?
Díky.