vera and dogs:synchronized、wait、notify(上)

来源:百度文库 编辑:偶看新闻 时间:2024/04/30 00:07:58
    

前些天,在凯通软件的JavaEE笔试中碰到了这么一题——为什么wait()、notify()要和synchronized一起使用?  

  当时不会写,随便瞎扯了几句,后来在网上搜了一下,发现关于这个问题的解答很少——至少我没找到,于是把对于线程方面的知识又粗略的看了一下,后来大致总结如下:     synchronized是为了解决同步问题的,而遇到“生产者-消费者”模型时就要用到wait()、notify()来一起解决。

至于笔试题的解答,大致可以理解为:因为wait的作用是通知当前线程等待并释放对象锁,notify的作用是通知等待此对象锁的线程重新获得对象锁,然而,如果没有获得对象锁,wait方法和notify方法都是没有意义的,即必须要先获得对象锁才能对对象锁进行操作,于是,才必须把wait方法和notify方法写到synchronized方法或是synchronized块中了