Java 线程状态变化详解:从NEW到TERMINATED
这段代码创建了一个继承自Thread类的Create1线程对象,并通过start()方法启动了该线程。线程的状态变化如下:\n\n1. 创建Create1对象时,线程处于NEW状态。\n2. 调用start()方法后,线程进入就绪状态,等待获取CPU执行时间片。\n3. 当线程获取到CPU执行时间片时,线程进入运行状态,开始执行run()方法中的代码逻辑。\n4. 执行到Thread.sleep(1000)时,线程进入阻塞状态,因为调用了sleep()方法使线程休眠1秒钟。\n5. 当休眠时间结束后,线程重新进入就绪状态,等待获取CPU执行时间片。\n6. 当线程再次获取到CPU执行时间片时,继续执行run()方法中剩余的代码逻辑。\n7. 线程执行结束,进入终止状态。\n\n线程的状态变化是由操作系统内核调度决定的。当线程处于就绪状态时,操作系统会根据一定的调度策略选择一个就绪线程来执行,当线程执行完毕或阻塞时,操作系统会重新选择一个就绪线程来执行。在代码中,通过调用start()方法启动线程,使其进入就绪状态,然后操作系统会根据调度策略选择一个时间片给该线程执行。线程执行完毕后,进入终止状态。在线程的执行过程中,通过调用sleep()方法使线程进入阻塞状态,等待指定的时间后重新进入就绪状态。
原文地址: https://www.cveoy.top/t/topic/p7wu 著作权归作者所有。请勿转载和采集!