I have program which computes the index of array*value and returns a string. I use .starmap_async()
because I must pass two arguments to my async function. The program looks as follows:
import multiprocessing as mp
from multiprocessing import freeze_support
def go_async(self, index, value) :
return str(index * int(value))
def log_result(self, result):
print("Succesfully get callback! With result: ", result)
def main() :
array = [1,3,4,5,6,7]
pool = mp.Pool()
res = pool.starmap_async(go_async, enumerate(array), callback = log_result)
print("Final result: ", res)
pool.close()
pool.join()
if __name__ == '__main__':
freeze_support()
main()
I would like to get a result as an array of str:
res = ['0', '3', '8', '15', '24', '35']
but I have only result:
Final result: multiprocessing.pool.MapResult object at 0x000001F7C10E51D0
How to correctly get value from .starmap_async()
?
Moreover, callback does not raise.