Simultaneamente, executar duas funções que usam parâmetros e retornam listas?

Entendo que duas funções podem ser executadas em paralelo usandomultiprocessing outhreading módulos, por exemploExecute duas funções ao mesmo tempo eMultiprocessamento Python para processos paralelos.

Mas os exemplos acima usam apenas a função de impressão.É possível executar funções que retornam uma lista em paralelo em python; se sim, como?

Eu tentei com rosqueamento:

from threading import Thread
def func1(x):
    return [i*i for i in x]

def func2(x):
    return [i*i*i for i in x]

nums = [1,2,3,4,5]

p1 = Thread(target = func1(nums)).start()
p2 = Thread(target = func2(nums)).start()

print p1
print p2

mas eu tenho o seguinte erro:

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 808, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 761, in run
    self.__target(*self.__args, **self.__kwargs)
TypeError: 'list' object is not callable

None
None
Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 808, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 761, in run
    self.__target(*self.__args, **self.__kwargs)
TypeError: 'list' object is not callable

Eu tentei inserirargs parâmetro como uma tupla, em vez de uma variável:

import threading
from threading import Thread

def func1(x):
    return [i*i for i in x]

def func2(x):
    return [i*i*i for i in x]

nums = [1,2,3,4,5]

p1 = Thread(target = func1, args=(nums,)).start()
p2 = Thread(target = func2, args=(nums,)).start()

print p1, p2

mas só retornaNone None, a saída desejada deve ser:

[Fora]:

[1, 4, 9, 16, 25] [1, 8, 27, 64, 125]

questionAnswers(2)

yourAnswerToTheQuestion