1.toString()线程
2.equal()对象
3.getClass()get
4.clone()it
5.hasCode()监控
6.wait()程序
7.notify()方法
8.notifyall()cpu
9finalize()时间
notify()和notifyall()的区别:
notifyAll会使全部等待被唤醒的线程退出等待状态,变为等待该对象上的锁,当锁打开的时候,他们就会去竞争。
notify则只会选择一个等待的线程进行通知,而且使得它获取该对象上的锁,不会惊动其余等待的线程。
当第一个线程运行完毕之后释放对象上的锁此时若是该对象没有再次使用notify语句,则即使该对象已经空闲,其余wait状态等待的线程因为没有获得该对象的通知,继续处在wait状态,直到这个对象发出一个notify或notifyAll,它们等待的是被notify或notifyAll,而不是锁。
wait()和sleep()的区别
wait()属于Object类上面的方法;wait()属于Thread类上的方法
sleep()方法致使了程序暂停执行指定的时间,让出cpu该其余线程,可是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。
在调用sleep()方法的过程当中,线程不会释放对象锁。
wait()会使得线程放弃该对象的锁,只有调用notify()方法唤醒该线程,而且把锁给他,他才会继续运行,不然一直挂着等待唤醒,从新拿到锁。