有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 1 楼答案

    在Java程序中,您创建线程,但它们不是由Java单独执行的。Java需要底层操作系统的帮助来执行它们。为了分配微处理器时间并监督所有线程的执行,操作系统配备了线程调度程序。维护线程执行顺序的全部责任在于线程调度器,其中哪个线程应该优先于另一个线程。调度取决于调度器的算法。许多类型的算法都存在,比如抢占式时间切片以及循环等。这是一个非常复杂的算法,在给定时间内执行多次
    调度程序维护一个线程池。当Java线程开始调用start()方法时,它会加入等待线程池

    线程状态
    1。新状态:创建线程实例后,线程处于该状态,但在start()方法调用之前。此时,线程被视为不活动

    2。可运行(准备运行)状态:线程从可运行状态开始其生命周期。线程在调用start()方法后首先进入可运行状态,但线程也可以在运行、等待、睡眠或从阻塞状态返回后返回此状态。在这种状态下,线程正在等待打开处理器

    3。运行状态:线程处于运行状态,这意味着该线程当前正在执行。有几种方法可以进入Runnable状态,但只有一种方法可以进入Runnable状态:调度器从Runnable池中选择一个线程

    4。死状态:当线程的run()方法完成时,可以将其视为死线程。如果任何线程处于这种状态,这意味着它无法再次运行
    5。阻塞:-由于等待另一个线程占用的资源,线程可以进入此状态

    enter image description here

  2. # 2 楼答案

    我认为这意味着线程执行一系列动作。老实说,这表达了一个非常糟糕的概念

    换句话说:

    • 创建一个Thread,理想的情况是传递一个Runnable。(您可以扩展Thread,并覆盖其run方法,但这通常是不受欢迎的。)
    • 你打电话给start
    • 调用start的线程继续执行其程序中的下一条语句
    • run方法在单独的线程中执行,与启动它的线程无关。这里的行为就是我所说的“顺序”
    • 由于以下情况之一,新螺纹最终会终止:
      • 它的run方法正常完成
      • 它的run方法完成时有一个异常
      • 如果它是一个守护进程线程,由于所有非守护进程线程退出,它可以作为JVM终止的一部分终止