线程在被创建后处于NEW状态,当其他线程调用了新创建线程的start()方法,新线程就处于就绪(RUNNABLE)状态,这个时候我们需要注意的时,此时线程并不能直接开始运行,它必须等待CPU资源,此时处于准备(READY)状态,当其获得CPU资源时,线程状态转变为运行(RUNNING)状态。
当线程运行到由synchronized修饰的同步方法或者同步代码块时,如果线程正常获得锁,线程正常运行,当线程无法获得锁时,线程的状态就变为BLOCKED状态,当线程再次成功获得锁后,线程进入就绪状态。
线程在运行过程时还可能进入等待(WAITABLE)状态,等待分为超时等待和不超时等待,两种情况都可以使用notify方法唤醒,线程再次进入就绪状态。
系统中线程之间的状态转换
最新推荐文章于 2022-11-01 22:49:35 发布