0

I want use pool.map to simplify concurrency in my scripts and I find the same question as below link, but not get a concise method for this issue.

Python multiprocessing pool.map for multiple arguments

from multiprocessing.dummy import Pool as ThreadPool

def run_multiple_args(tuple_args):
    args_1 = tuple_args[0]
    args_2 = tuple_args[1]
    print args_1, args_2

pool = ThreadPool(2)

arg_list = [(1,2), (4,8)]

pool.map(func=run_multiple_args, iterable=arg_list)
pool.close()
pool.join()

i want use def run_multiple_args(args_1, args_2): to replace tuple_args.

no 3rd party lib, less code more better. any idea?

Community
  • 1
  • 1
dakangz
  • 25
  • 4

1 Answers1

0

You can use a lambda to unpack the argument tuple:

from multiprocessing.dummy import Pool as ThreadPool

def run_multiple_args(args_1, args_2):
    print args_1, args_2

pool = ThreadPool(2)
arg_list = [(1,2), (4,8)]

pool.map(func=lambda args: run_multiple_args(*args), iterable=arg_list) # <-- see here
pool.close()
pool.join()
kirbyfan64sos
  • 10,377
  • 6
  • 54
  • 75