Q: Python 3 does inbuilt map function using parallel I wonder if the built in map function splits a list in x-chunks to apply the give function in parallel (Threads)?
The docu doesnt say anything about it but I would wonder why it is not implemented like this.
    def map_func(x):
    '''

   :param x: 
   :return: 2x
   >>> map_func(4)
   4
   '''
    return x * x


new_list = list(map(map_func, range(1, 2 ** 25)))
print(new_list)

From the task manager i cannot clearly see if its done by one thread or more.
Can someone explain please if its sequential and if so, why?

A: It's sequential because map the higher-order function in general has to apply a function to data and return the results in the same order as the original data:
map(f, [1,2,3,4]) => [f(1), f(2), f(3), f(4)]

Making it parallel will introduce the need of synchronisation, which'll defeat the purpose of parallelism.
multiprocessing.Pool.map is a parallel version of the built-in map that will split the workload into chunks and correctly organise the results.
