title: Golang simultaneous read/write to the file without explicit file lock
body: <p>I have a situation where I need to concurrently read/write from/to the file, but the scope of operations is <em>limited</em>:</p>
  
  <ul>
  <li>append only, no random offset writes</li>
  <li>read from random position, where I know for sure the content has been written before(via append, internal access serialization via golang channel to ensure random read happens only after content's been appended)</li>
  <li>there is only one process running</li>
  </ul>
  
  <p>This is a high loaded application and I would like to avoid locking file for each read/write I do</p>
  
  <p>I was going to open 2 files - one for read, another for append only</p>
  
  <p>would doing so create some potential issues/bugs?</p>
  
  <p>what is the recommended practice if I would like to avoid file locking for each read/write I do?</p>
  
  <p>p.s. golang, linux, ext4</p>