title: Understanding the Send trait
body: <p>I am trying to wrap my head around <code>Send + Sync</code> traits. I get the intuition behind <code>Sync</code> - this is the traditional thread safety(like in <code>C++</code>). The object does the necessary locking(interior mutability if needed), so threads can safely access it.</p>
  
  <p>But the <code>Send</code> part is bit unclear. I understand why things like <code>Rc</code> are <code>Send</code> only - the object can be given to a different thread, but non-atomic operations make it thread unsafe.</p>
  
  <ol>
  <li><p>What is the intuition behind <code>Send</code>? Does it mean the object can be copied/moved into another thread context, and continues to be valid after the copy/move?</p></li>
  <li><p>Any examples scenarios for "<code>Sync</code> but no <code>Send</code>" would really help. Please also point to any rust libraries for this case (I found several for the opposite though)</p></li>
  </ol>
  
  <p>For (2), I found some threads which use structs with pointers to data on stack/thread local storage as examples. But these are unsafe anyways(Sync or otherwise).</p>