Java中线程的生命周期是怎样的?

提问者:帅平 问题分类:面试刷题
Java中线程的生命周期是怎样的?
1 个回答
Rae
Rae 管理员
1.new Thread表示NEW状态。
2.调用start方法来到运行(RUNNABLE)状态。
3.等待synchronized方法或模块的时候到(BLOCKED)阻塞状态。获取锁后又来到(RUNNABLE)状态。
4.调用Object的wait方法、Thread的join方法、LockSupport的park方法来到(WAITING)等待状态。反之,调用Object的notify方法、Object的notifyAll方法、LockSupport的unpark ( Thread )方法状态又回到(RUNNABLE)状态。
5.调用Thread的sleep(long)方法、Object的wait(long)方法、Thread的join(long)方法、LockSupport的parkNnos()方法、LockSupport的parkUnit方法来到(TIMED_WAITING)超时等待状态。反之,调用Object的notify方法、Object的notifyAll方法、LockSupport的unpark ( Thread )方法状态又回到(RUNNABLE)状态。
6.线程执行完成后来到(TERMINATED)终止状态。
发布于:3年前 (2022-10-23) IP属地:未知
Rae
Rae管理员
再附上一张图直观的表达整个过程:
发布于:3年前 (2022-10-23) IP属地:未知
我来回答