title: Preemptive threads Vs Non Preemptive threads
body: <p>Can someone please explain the difference between preemptive Threading model and Non Preemptive threading model?  </p>
  
  <p>As per my understanding:  </p>
  
  <ul>
  <li><strong><em>Non Preemptive threading model:</em></strong>  Once a thread is started it cannot be stopped or the control cannot be transferred to other threads until the thread has completed its task.  </li>
  <li><strong><em>Preemptive Threading Model:</em></strong> The runtime is allowed to step in and hand control from one thread to another at any time. Higher priority threads are given precedence over Lower priority threads.   </li>
  </ul>
  
  <p>Can someone please:</p>
  
  <ol>
  <li>Explain if the understanding is correct.</li>
  <li>Explain the advantages and disadvantages of both models.</li>
  <li>An example of when to use what will be really helpful.</li>
  <li>If i create a thread in Linux (system v or Pthread) without mentioning any options(are there any??) by default the threading model used is preemptive threading model?</li>
  </ol>