Sui sistemi Linux e POSIX, è meglio bloccare il file utilizzando ad es. avviso blocco come flock (2) o lockf (3) (e se la tua applicazione è multithread, dovrai utilizzare in qualche modo -eg mutex - per assicurarti che solo al massimo un singolo thread sta accedendo al file). Potresti avere una lettura goroutine (singola e ben definita) su alcuni canali go per quella sincronizzazione.
Questo blocco di avviso garantisce che altri programmi e amp; i processi che seguono la stessa convenzione di blocco non accederanno simultaneamente al tuo file (ma non impediranno ad alcuni programmi che non usano il blocco di accedervi o scriverlo).
Se si utilizza un database, il DBMS spesso garantisce ACID proprietà.
Alcune librerie (come sqlite , GDBM , ....) potrebbe avere anche un modo per bloccare i file.
Certamente dovresti preoccuparti di non avere più thread o processi che scrivono lo stesso file contemporaneamente. Questa sarebbe una condizione di razza , e tali bug sono difficili da riprodurre e difficili da trovare (leggi su heisenbugs ).