Archivo concurrente de escritura

¿Cómo escribir en un archivo de texto al que pueden acceder múltiples fuentes (posiblemente de forma concurrente) para garantizar que no se pierda ninguna operación de escritura?

Por ejemplo, si dos procesos diferentes escriben en el mismo momento en el archivo, esto puede ocasionar problemas. La solución simple (no muy rápida ni muy elegante) sería bloquear el archivo al comenzar el proceso (crear un archivo .lock o similar) y liberarlo (eliminar el bloqueo) mientras se realiza la escritura.

Al comenzar a escribir, verificaría si el archivo .lock existe y retrasaría la escritura hasta que se libere el archivo.

¿Cuál es el patrón recomendado a seguir para este tipo de situación?

Gracias

EDITAR Me refiero a procesos, como diferentes programas de diferentes clientes, diferentes usuarios, no hilos dentro del mismo programa.

Respuestas a la pregunta(6)

Su respuesta a la pregunta