线程的生命周期及各状态扭转说明

    技术2022-07-10  114

    1、新建

    new Thread()即创建了一个线程对象。

    2、就绪

    调用线程的start()方法,线程进入就绪状态,此时就等待CPU调度,分配时间片执行了。

    3、运用

    CPU分配时间片给线程执行后,线程就变成了执行状态。

    4、阻塞

    阻塞分为下面三种情况:

    sleep(long time)、t.join():这两种阻塞不会释放对象锁,sleep时间到、t线程执行完,线程回到就绪状态,等待CPU调度。

    wait():这种阻塞会释放对象锁,并且会一直等到调用了notify、notifyAll方法后才会被唤醒,唤醒后进入阻塞队列中争抢对象锁,抢到对象锁之后进入就绪状态等待CPU调度。

    synchronized:这种阻塞线程会直接进入阻塞队列中争抢对象锁,抢到对象锁之后进入就绪状态等待CPU调度。

    5、死亡

    当线程的run方法执行完,或者线程因异常跳出了run方法,那么线程的生命就结束了。

    Processed: 0.010, SQL: 9