title: Multithreading model of C++11
body: <p>I want to know more about c++11 multithreading model. Googling around I can find a lot of examples, demonstrations etc. but something is not obvious to me.</p>
  <p>We've studied about threading conceps in OS lessons of university. Of course that was not about a specific implementation or language. following passage is from Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, &quot;Operating System Concepts, Eighth Edition &quot;, Chapter 4:</p>
  <blockquote>
  <p>4.2 Multithreading Models</p>
  <p>There are two types of threads to be managed in a modern system: User threads and kernel threads.
  User threads are supported above the kernel, without kernel support. These are the threads that application programmers would put
  into their programs.</p>
  <p>Kernel threads are supported within the kernel of the OS itself. All modern OSes support kernel level threads, allowing the kernel to</p>
  <ul>
  <li>perform multiple simultaneous tasks and/or to service multiple kernel</li>
  <li>system calls simultaneously.</li>
  </ul>
  <p>In a specific implementation, the user threads must be mapped to kernel threads, using one of the following strategies:</p>
  <p>4.2.1 Many-To-One Model</p>
  <p>4.2.2 One-To-One Model</p>
  <p>4.2.3 Many-To-Many Model</p>
  </blockquote>
  <p>So which of models is supported by c++11? AFAIK <code>c++</code> is not supposed to be used in a specific variety of OSs. So standard library should support only user space threads, right?</p>