Lock a fichero para acceso concurrente
En programación distribuida, multiproceso, etc ... se da muchas veces la circunstancia de que varios hilos/procesos requieran escribir en un mismo fichero al mismo tiempo.
En Linux (y otros S.O. que cumplan posix) contamos con llamadas fcntl que nos proporcionan funcionalidades para efectuar un Lock a fichero.
import fcntl # Abrimos el fichero que necesita acceso concurrente fp = open('fichero_acceso_concurrente', 'w') # Efectuamos el Lock fcntl.flock(fp.fileno(), fcntl.LOCK_EX) # Ahora podemos escribir sin miedo fp.writelines('datos a escribir') # Desactivamos el Lock fcntl.flock(fp.fileno(), fcntl.LOCK_UN) # Cerramos el fichero para guardar los cambios fp.close()
Lenguaje:
python
