1 个回答

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)终止状态。
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属地:未知

再附上一张图直观的表达整个过程:


发布于:3年前 (2022-10-23) IP属地:未知
我来回答
您需要 登录 后回答此问题!