title: Strange code for preventing false sharing
body: <p>I want to discuss the following structure in golang from this <a href="https://golang.org/src/sync/pool.go" rel="nofollow noreferrer">link</a></p>
  
  <pre><code>// Local per-P Pool appendix.
      57  type poolLocal struct {
      58      private interface{}   // Can be used only by the respective P.
      59      shared  []interface{} // Can be used by any P.
      60      Mutex                 // Protects shared.
      61      pad     [128]byte     // Prevents false sharing.
      62  }
  </code></pre>
  
  <p>The above structure can be accessed only one thread at a time as Mutex is used. The coder will Lock the structure in the beginning of a thread and unlock it when the thread completes. So the memory is not shared between threads. So <strong>no more than one core will have
  access to the memory</strong>. So, by my understanding, <strong>false sharing cannot happen</strong> here. If false sharing cannot happen, why did the coder pad the structure
  with extra bytes (pad [128]byte) ? Is my understanding wrong? </p>