java线程机制
发布时间: 2024-12-25 14:56:24
Ⅰ java中线程有哪五个基本状态它们之间如何让转化
Java中的每个线程均经历五个不同的基本状态:新生、就绪、运行、阻塞和死亡,这五个状态组成了线程的生命周期。当通过new运算符与Thread类或其子类创建线程对象时,线程即处于新生状态。
新生状态到就绪状态的转变,通常是由调用start()方法来实现的。处于就绪状态的线程一旦获得CPU资源,便会被分配到运行状态,并自动调用自身的run()方法开始执行任务。
运行状态到阻塞状态的变化,通常是由于线程在执行sleep()方法,或是等待I/O设备资源时,自愿释放CPU资源并暂时停止运行。此时,线程将进入阻塞状态。
从阻塞状态回到就绪状态,需要等待两个条件:一是睡眠时间已到,二是等待的I/O设备已空闲。当这两个条件满足时,线程将重新进入就绪队列,等待下次CPU分配。
最后,线程状态从运行状态转变为死亡状态,主要有两种情况:一种是线程完成了自己的任务;另一种则是线程被强制终止,例如通过执行stop()或destroy()方法来结束线程的运行。
总之,线程状态的转化是根据其执行情况及外部环境影响而动态变化的,这一过程反映了线程的生命周期管理机制。
Ⅱ java里,线程运行机制是不是当线程start()后,当执行完Runable()里的以后,才能调用wait()方法
新建的线程调用start()方法,将使线程的状态从NEW转换为runnable ,表示处于就绪状态,此时线程仅仅是可以运行,但不一定在运行中。运行状态running时,可以有sleep()方法,wait()方法等。
热点内容