在说线程间的协作之前,先了解线程的几个状态,所谓协作就是改变线程的状态,Java中线程中状态可分为五种:New(新建状态),Runnable(就绪状态),Running(运行状态),Blocked(阻塞状态),Dead(死亡状态)。
归属于object的三个方法:wait/notify/notifyAll
notify/notifyAll最主要的区别:前者唤醒一个等待线程,后者唤醒所有线程
归属于Thread的三个方法:sleep/yield/join
wait和sleep的区别除了归属不一样,最主要的是前者释放锁,后者不释放
yield,它是个谦谦君子,最主要的功用就是谦让,然后再公平获取锁资源
join,它就是等待其他线程结束,自己再继续操作。