java中的sequence是什么意思?

时间:2012-08-17 06:41:04

标签: java multithreading

Java Thread可以有开头,结尾和序列,这是什么意思?

2 个答案:

答案 0 :(得分:1)

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

换句话说:

  • 您创建了Thread,最好将其传递给Runnable。 (您可以扩展Thread并覆盖其run方法,但这通常不赞成。)
  • 你打电话给start
  • 调用start的线程继续执行其程序中的下一个语句
  • run方法在单独的线程中执行,与启动它的线程无关。这里的行为是我认为“序列”的意思
  • 由于以下某种情况,新线程最终会终止:
    • run方法正常完成
    • run方法以异常
    • 完成
    • 如果它是守护程序线程,由于所有非守护程序线程退出,它可以作为JVM终止的一部分终止

答案 1 :(得分:0)

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

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

<强> 2。 Runnable(Ready-to-run)状态:一个线程从Runnable状态开始生命。线程在调用start()方法后首先进入runnable状态,但线程可以在运行,等待,休眠或从阻塞状态返回后返回此状态。在此状态下,线程正在等待处理器的开启。

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

<强> 4。死状态:当run()方法完成时,线程可以被认为是死的。如果任何线程出现在这个状态,这意味着它不能再运行。
5。阻止: - 由于等待另一个线程持有的资源,线程可以进入此状态

enter image description here