Object类
1.Object类是所有Java类的根父类
2.如果类的声明中未使用extends关键字指明其父类,则默认父类为Java.lang.Object类
3.Object类
属性:无
方法:equals()、toString()、getClass()、hashcode()、clone()、finalize()、wait()、notify()、notifyAll()
4.万物皆对象,除8种数据类型以外都是Object的子类
wait()、notify()、notifyAll()
- notify():可以唤醒一个在该对象上等待的线程
- notifyAll():唤醒所有在该对象上等待的线程
- wait():是指在一个已经进入了同步锁的线程内,让自己暂时让出同步锁,以便其他正在等待此锁的线程可以得到同步锁并运行,只有其他线程调用了notify方法(notify并不释放锁,只是告诉调用过wait方法的线程可以去参与获得锁的竞争了,但不是马上得到锁,因为锁还在别人手里,别人还没释放),调用wait方法的 一个或多个线程就会解除wait状态,重新参与竞争对象锁,程序如果可以再次得到锁,就可以继续向下运行
wait()、sleep()区别
1.wait()
①:属于Object类,一旦一个对象调用了wait(),必须用notify()、notifyAll()唤醒该线程
②:会释放锁,线程进入等待池,释放CPU
③:不需要捕获异常
④:wait()、notify()、notifyAll()需要在同步代码中使用
2.sleep()
①:属于Thread类,线程调用sleep()后,进入其他阻塞状态,睡眠结束后进入就绪态
②:会暂时释放CPU,但不会释放锁
③:需要捕获异常
④:可以在任何地方使用