title: Multi-Threading support in c11
body: <p>The new C11 standard provides a support for Multi-Threading.<br>
  My Questions are a bit diversified but definitely answerable.<br>
  I have had a look at the C11 <strong><a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf" rel="noreferrer">n1570</a></strong> draft.<br>
  It says:      </p>
  
  <blockquote>
    <p>support for multiple threads of execution including an improved memory sequencing
    model, atomic objects, and thread-local storage (<code>&lt;stdatomic.h&gt;</code> and <code>&lt;threads.h&gt;</code>)</p>
  </blockquote>
  
  <p>What is the <strong>Improved memory sequencing model</strong>? How/What changes from the c99 Standard?</p>
  
  <p>Rather than just quotes from standard, I will appreciate if someone delves deeper in them and tries explaining the semantics involved.</p>
  
  <p>As I understand, C11 provides support for:    </p>
  
  <ul>
  <li>Thread creation and Management     </li>
  <li>Mutex</li>
  <li>Conditional Variables</li>
  <li>Thread Specific storage &amp;</li>
  <li>Atomic Objects</li>
  </ul>
  
  <p>I hope I didn't miss anything?<br>
  Since now the Standard library itself provides(will provide) all the functionalities needed for Multi-Threading, there would be no need for POSIX and such libraries(for Multi-Threading support) in future?      </p>
  
  <p>Lastly, What compilers provide support for the above mentioned features? Are there any references as to timelines when these will be supported?<br>
  I remember for C++11 there was a link for compiler support and features, perhaps something like that?</p>