Investigué primero y no pude encontrar una respuesta a mi pregunta. Estoy tratando de ejecutar múltiples funciones en paralelo en Python.Python: ¿Cómo puedo ejecutar las funciones de Python en paralelo?
que tienen algo como esto:
files.py
import common #common is a util class that handles all the IO stuff
dir1 = 'C:\folder1'
dir2 = 'C:\folder2'
filename = 'test.txt'
addFiles = [25, 5, 15, 35, 45, 25, 5, 15, 35, 45]
def func1():
c = common.Common()
for i in range(len(addFiles)):
c.createFiles(addFiles[i], filename, dir1)
c.getFiles(dir1)
time.sleep(10)
c.removeFiles(addFiles[i], dir1)
c.getFiles(dir1)
def func2():
c = common.Common()
for i in range(len(addFiles)):
c.createFiles(addFiles[i], filename, dir2)
c.getFiles(dir2)
time.sleep(10)
c.removeFiles(addFiles[i], dir2)
c.getFiles(dir2)
Quiero llamar func1 y func2 y hacer que se ejecuten al mismo tiempo. Las funciones no interactúan entre sí o en el mismo objeto. Ahora mismo tengo que esperar a que func1 termine antes de que comience func2. ? ¿Cómo hago algo, como a continuación:
process.py
from files import func1, func2
runBothFunc(func1(), func2())
Quiero ser capaz de crear dos directorios muy cerca al mismo tiempo porque cada minuto que estoy contando cómo se están creando muchos archivos. Si el directorio no está allí, perderá mi tiempo.
Actualizando la pregunta – lmcadory
Es posible que desee volver a diseñar esto; Si está contando la cantidad de archivos/carpetas por minuto, está creando una condición de carrera. ¿Qué tal si cada función actualiza un contador o utiliza un archivo de bloqueo para garantizar que el proceso periódico no actualice el recuento hasta que ambas funciones hayan terminado de ejecutarse? –