免费发布信息的网站平台,毕业查询结果网站怎么做,网站建设虚拟主机,郑州seo多少钱wait,notify,饿汉模式 一.wait,notify方法使用1.1 例子 二.wait和sleep区别三.单例模式中的饿汉模式 一.wait,notify方法使用 引入wait和notify为了能够从应用层面上,干预到多个不同线程代码的执行顺序,不是影响系统的线程调度策略. 相当于是在应用程序代码中,让后执行的线程,主… wait,notify,饿汉模式 一.wait,notify方法使用1.1 例子 二.wait和sleep区别三.单例模式中的饿汉模式 一.wait,notify方法使用 引入wait和notify为了能够从应用层面上,干预到多个不同线程代码的执行顺序,不是影响系统的线程调度策略. 相当于是在应用程序代码中,让后执行的线程,主动放弃被调度的机会,就可以让先执行的线程,先把对应的代码执行完 1.1 例子 第一个人进去之后,发现ATM机器里面没有钱,会先出来,等有的时候再取,其他人就会竞争这把锁,但是刚刚出来的那个人,也会重新进入到锁竞争中. 但是有一种可能,就是1号进去之后出来,出来再进去,就会一直拿到锁释放锁,进入循环,就造成了***“线程饿死”*** 注意:这里的1号是不用被唤醒,直接参与锁竞争即可. wait在内部的三个工作 1.释放锁 2.进入阻塞等待 3.其他线程调用notify方法,解除阻塞,重新获取到锁 注意事项: wait和notify必须放到synchronized里面使用 并且必须是同一个锁对象 如果wait是一个对象,notify唤醒的是另一个对象,那么notify唤醒的是哪个对象,那么就是那个对象. 二.wait和sleep区别 三.单例模式中的饿汉模式 只允许创建一个实例的模式,不允许其他再new对象. 在上述代码中,实现了只实例化一个对象的模式 并且提供了私有的构造方法,防止其他再强行实例化对象 如果再实例化对象,就会在编译时期报错.