notify wait sleep join yield yield

notify 和 wait,他们的操作必须有一个公共的锁对象(就相当于下拉框option 的分组一样)

       notify通知之后,也要等到当前线程运行完成,才会释放锁,wait线程才能开始拿到锁,执行(wait()方法之后的)程序

  

Object.wait()    Object.nitify()   Thread.sleep(),也就是说,sleep()方法是属于Thread调用的,wait() notify()属于Object的

Object.wait()  会立即释放锁 Thread.sleep()不会释放锁

join() 加入(拦截等待)  加入的线程先执行完,或者执行一定时间,才会让被加入(被阻断)的线程继续执行

yield() 谦让       当前线程让出cpu,然后,一起加入到等待线程中

volatile 关键字,对于保证操作的原子行有非常大的帮助,但是不能替代锁,它无法保证一些复合操作的原子性,比如,无法保证   i++  的原子性操作。

 

posted on 2017-12-07 15:52  一个帅哥9527  阅读(125)  评论(0编辑  收藏  举报