Al mismo tiempo, ¿ejecuta dos funciones que toman parámetros y devuelven listas?

Entiendo que dos funciones pueden ejecutarse en paralelo usandomultiprocessing othreading módulos, p.Haga que 2 funciones se ejecuten al mismo tiempo yMultiprocesamiento de Python para procesos paralelos.

Pero los ejemplos anteriores solo usan la función de impresión.¿Es posible ejecutar funciones que devuelven una lista en paralelo en python? De ser así, ¿cómo?

He intentado con hilos:

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

pero recibí el siguiente error:

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

He intentado ingresarargs parámetro como una tupla, en lugar de una variable:

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

pero solo regresaNone None, la salida deseada debe ser:

[fuera]:

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

Respuestas a la pregunta(2)

Su respuesta a la pregunta