W3docs

How to use multiprocessing pool.map with multiple arguments

To use the multiprocessing.pool.map() function with multiple arguments, you will need to use the starmap() method instead.

To use the multiprocessing.Pool.map() function with multiple arguments, you will need to use the starmap() method instead. The starmap() method is similar to map(), but it allows you to pass iterable arguments to the function using the * operator.

Here's an example of how you might use starmap() to apply a function to multiple pairs of arguments:

Use multiprocessing pool.map with multiple arguments in Python

from multiprocessing import Pool

def add(x, y):
    return x + y

# Create a pool with 4 worker processes
with Pool(4) as p:
    # The arguments are passed as tuples
    result = p.starmap(add, [(1, 2), (3, 4), (5, 6), (7, 8)])

print(result)  # prints [3, 7, 11, 15]

Watch a course Watch a video course Python - The Practical Guide

You can also use the starmap() method with a function that takes more than two arguments. In that case, you would need to pass the arguments as tuples with the appropriate number of elements.

For example:

Using starmap method with a function that takes more than two arguments in Python

from multiprocessing import Pool

def add_subtract(x, y, z):
    return x + y - z

# Create a pool with 4 worker processes
with Pool(4) as p:
    # The arguments are passed as tuples
    result = p.starmap(add_subtract, [(1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, 12)])

print(result)  # prints [0, 3, 6, 9]