Вытесняющие потоки и не вытесняющие потоки

Может ли кто-нибудь объяснить разницу между моделью вытесняющего потока и моделью без вытеснения?

Насколько я понимаю:

  • Модель без вытеснения потоков: После запуска поток не может быть остановлен или управление не может быть передано другим потокам, пока поток не завершит свою задачу.
  • Модель вытесняющего потока: Среда выполнения может вмешиваться и передавать управление от одного потока другому в любое время. Потоки с более высоким приоритетом имеют приоритет над потоками с более низким приоритетом.

Кто-нибудь может:

  1. Объясните, правильно ли вы поняли.
  2. Объясните преимущества и недостатки обеих моделей.
  3. Пример того, когда использовать то, что будет действительно полезно.
  4. Если я создам поток в Linux (system v или Pthread) без упоминания каких-либо параметров (есть ли какие-либо ??) по умолчанию используемая модель потоков - это модель вытесняющих потоков?
50
задан Tiago 28 January 2018 в 17:00
поделиться