Java Thread可以有开头,结尾和序列,这是什么意思?
答案 0 :(得分:1)
我认为这意味着线程执行一系列操作。说实话,它表达的概念非常糟糕。
换句话说:
Thread
,最好将其传递给Runnable
。 (您可以扩展Thread
并覆盖其run
方法,但这通常不赞成。)start
start
的线程继续执行其程序中的下一个语句run
方法在单独的线程中执行,与启动它的线程无关。这里的行为是我认为“序列”的意思run
方法正常完成run
方法以异常答案 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。阻止: - 由于等待另一个线程持有的资源,线程可以进入此状态