title: What is lock-free multithreaded programming?
body: <p>I have seen people/articles/SO posts who say they have designed their own "lock-free" container for multithreaded usage. Assuming they haven't used a performance-hitting modulus trick (i.e. each thread can only insert based upon some modulo) how can data structures be multi-threaded but also lock-free???</p>
  
  <p>This question is intended towards C and C++.</p>