Java线程调度

一、线程调度

  线程调度就是操作系统为线程分配处理器使用权的过程。

二、线程调度方式

  1. 协同式(Cooperative threads-scheduling)

    协同式是指线程的切换是线程自己控制,也就是说线程执行完成后主动通知切换到另一条线程执行。

    协同式调度的好处:

      实现简单,线程的切换是线程可知的,所以,不存在线程同步问题。

    协同式调度的缺点:

      线程的执行时间不可控,假设,某个线程代码编写有错,导致线程堵塞无法通知切换其他线程执行,会导致整个进程堵塞。

  2. 抢占式(Preemptive threads-scheduling)

    抢占式调度是指由操作系统分配线程执行时间,线程的切换是操作系统控制。

    由于线程的执行时间和线程切换由操作系统控制,即使某一条线程堵塞,也不会堵塞进程继续执行。

    抢占式调度是由操作系统分配和控制,线程是不能控制的。虽然线程执行时间是不能主动申请的,但是,可以建议哪些线程可以多分配一些执行时间。这一项操作是通过线程优先级完成的。

三、Java线程调度方式

  Java的线程调度采用抢占式进行调度的,Java中线程的执行顺序通过线程优先级进行调整。Java中线程线程优先级分为10级。

posted @ 2021-10-23 17:04  naray  阅读(331)  评论(0编辑  收藏  举报