¿Cómo usar Python multinúcleo con proceso PyQt4?

Estoy escribiendo una aplicación en pyqt4 que tiene que leer y analizar muchos archivos XML. Hecho un solo hilo, toma un tiempo hacer todo ese análisis y hacer los miles de objetos de Python correspondientes a ese XML entrante. He perfilado el código y, por lo que puedo decir, se trata de un proceso de cálculo, no de E / S.

Me gustaría convertir la aplicación a un modelo de múltiples núcleos para distribuir la carga, utilizando un modelo de trabajador-granja (? Process.Pool en python).

Sin embargo, también me gustaría poder indicar el progreso de los trabajadores para actualizar la interfaz gráfica de usuario.

Por lo que he leído hasta ahora, me parece que QThread no es capaz de multinúcleo (porque se trata de robin en un solo núcleo) pero necesito QThread para hacer Signal, y por lo tanto, esencialmente no puedo hacer eso.

Podría ser capaz de hacer que no necesite una Señal de un trabajador, solo del agricultor, lo que podría significar que puedo continuar, pero luego me pregunto: ¿puedo devolver una lista de objetos de python de un Proceso a otro?

Respuestas a la pregunta(1)

Su respuesta a la pregunta