锁入门
线程的几个方法:
wait():使线程进入阻塞状态,释放拥有的锁,不会自动苏醒,需要调用notify()或者notifyAll方法;
sleep():是线程进入睡眠状态,不会释放拥有的锁,会自动苏醒,需要处理异常;
notify():唤醒一个处于等待状态的线程,当然在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且与优先级无关;
notityAll():唤醒所有处于等待状态的线程,该方法并不是将对象的锁给所有线程,而是让它们竞争,只有获得锁的线程才能进入就绪状态;
yield():使线程进入就绪状态
syncronized关键字:
加在方法前就是给当前对象加锁,方法执行完释放锁;
加在静态方法前就是给当前类的所有实例加锁,方法执行完释放锁;
加在代码块前,代码块执行完释放锁。
浙公网安备 33010602011771号