请有人解释一下抢占式线程模型和非抢占式线程模型的区别:
根据我的理解:
- 非抢占式线程模型:线程一旦启动,就不能被停止或转移控制权到其他线程,直到线程完成其任务。
- 抢占式线程模型:运行时允许在任何时候从一个线程中接管控制权并将其交给另一个线程。高优先级线程优先于低优先级线程。
请有人:
- 解释理解是否正确。
- 解释两种模型的优缺点。
- 举例说明何时使用哪个模型会非常有帮助。
- 如果我在Linux中创建一个线程(System V或Pthread),没有指定任何选项(是否有?)默认使用的是抢占式线程模型吗?
yield
、delay
或其他挂起函数暂停,使协程“合作”,以便其他协程可以在同一线程中运行。 - r0n9