目录
1.让我们先来理解一下线程调度是什么?
线程调度是指系统为线程分配处理器(CPU)的过程,其调度方式主要有两种:
1.协同式线程调度
协同就是指线程的执行时间由线程本身来控制,线程把自己的工作处理完成后,需要主动通知系统切换线程
- 优点:实现简单,线程处理完自己的工作才会切换线程,没有上下文切换操作,省CPU资源
- 缺点:容易阻塞,一直占领CPU不让出使用权,很容易导致系统崩溃
2.抢占式线程调度
线程的调换不由线程自身控制,而是由系统决定的(优先级高的线程会抢占CPU)dzz,Java的线程调度就属于抢占式线程调度
- 优点:不易堵塞
- 缺点:线程切换由系统控制上下文切换比较频繁,容易发生线程不安全的问题