Может кто-нибудь объяснить, пожалуйста, разницу между моделью вытесняющих потоков и моделью не вытесняющих потоков?
Согласно моему пониманию:
- Модель без вытеснения потоков: после запуска потока его нельзя остановить или передать управление другим потокам, пока поток не завершит свою задачу.
- Модель вытесняющих потоков: среде выполнения разрешено входить и передавать управление из одного потока в другой в любое время. Потоки с более высоким приоритетом имеют приоритет перед потоками с более низким приоритетом.
Может кто-нибудь, пожалуйста:
- Объясните, если понимание правильно.
- Объясните достоинства и недостатки обеих моделей.
- Пример того, когда использовать то, что будет действительно полезно.
- Если я создаю поток в Linux (system v или Pthread) без упоминания каких-либо опций (есть ли??) по умолчанию, то используемой моделью потоков является модель вытесняющих потоков?