estoy usando Python 2.7, que tienen un código que se parece a esto:tareas que se ejecutan en paralelo en pitón
task1()
task2()
task3()
dependent1()
task4()
task5()
task6()
dependent2()
dependent3()
Las únicas dependencias aquí son las siguientes: dependent1 tiene que esperar a que tasks1-3, dependent2 necesidades esperar las tareas 4-6 y dependiente3 necesita esperar dependientes1-2 ... Lo siguiente estaría bien: ejecutar las 6 tareas en primer lugar en paralelo, luego las dos primeras dependientes en paralelo ... luego la dependiente final
Prefiero tener la mayor cantidad de tareas posible ejecutando en paralelo, he buscado en Google algunos módulos, pero esperaba evitar las bibliotecas externas, y no estoy seguro de cómo el Que La técnica ue-Thread puede resolver mi problema (¿alguien puede recomendar un buen recurso?)
Recomiendo usar los métodos * Queue.task_done * y * Queue.join * de la biblioteca estándar para sincronizar los hilos. En la parte inferior de la página en los documentos de Queue, encontrará un ejemplo de cómo esperar a que otros subprocesos finalicen sus tareas: http://docs.python.org/library/queue.html#Queue.Queue.join –
Si su código se vuelve más complejo, vale la pena examinar las bibliotecas externas, porque ya hay cosas que hacer frente a la ejecución de tareas en paralelo al mismo tiempo que se asegura de que las dependencias se ejecuten en orden. –
Debido a GIL, los hilos solo se ejecutarán uno a la vez en python estándar. Sin embargo, las versiones futuras de Pypy usando STM pueden evitar esto. –