• Java线程调度


    一、线程调度

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

    二、线程调度方式

      1. 协同式(Cooperative threads-scheduling)

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

        协同式调度的好处:

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

        协同式调度的缺点:

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

      2. 抢占式(Preemptive threads-scheduling)

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

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

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

    三、Java线程调度方式

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

  • 相关阅读:
    js五种继承优缺点
    golang---panic/recover
    golang---应用OOM
    golang--- context
    常用工具及日常
    golang --- pipline
    golang 竞争---翻译
    深入golang之---goroutine并发控制与通信
    rpm打包
    k8s-operator指北
  • 原文地址:https://www.cnblogs.com/naray/p/15449021.html
Copyright © 2020-2023  润新知