锁入门

线程的几个方法:

wait():使线程进入阻塞状态,释放拥有的锁,不会自动苏醒,需要调用notify()或者notifyAll方法;

sleep():是线程进入睡眠状态,不会释放拥有的锁,会自动苏醒,需要处理异常;

notify():唤醒一个处于等待状态的线程,当然在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且与优先级无关; 

notityAll():唤醒所有处于等待状态的线程,该方法并不是将对象的锁给所有线程,而是让它们竞争,只有获得锁的线程才能进入就绪状态;

yield():使线程进入就绪状态

 

syncronized关键字:

加在方法前就是给当前对象加锁,方法执行完释放锁;

加在静态方法前就是给当前类的所有实例加锁,方法执行完释放锁;

加在代码块前,代码块执行完释放锁。

posted on 2022-07-28 20:43  faucon  阅读(30)  评论(0)    收藏  举报