java多线程,wait和nofity的问题。

当一个线程进入了synchronized方法,在这个方法的某一步调用了wait方法,
然后当这个线程再次被唤醒的时候,它是继续从wait的地方开始执行,还是从这个synchronized方法入口开始执行?

继续从wait的地方开始执行

当调用了wait方法时,改线程进入等待状态,在线程执行的指令集中执行到的位置停止,当线程被唤醒时,还会从等待的位置执行。另外synchronized操作是原子性的,所以程序依然会从原来wait的位置执行。

继续从wait的地方开始执行,

线程有四种状态。
创建-就绪-运行-死亡

调用wait方法后,线程在运行中运行等待,直到被唤醒后再进入运行状态,程序会在wait处执行之后的操作。

创建-就绪-运行-等待-被唤醒-运行-死亡

继续从wait的地方开始执行,

wait 方法调用时 线程出去暂停状态,当再次被唤醒时 会继续从wait后执行