`
standalone
  • 浏览: 613496 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

为什么wait()必须要在放synchronized里面?

    博客分类:
  • java
阅读更多

假如你要调用某个对象的wait()方法,一般都要放在synchronized声明里面,why? 下面是答案。

 

Suppose d is the object we're using to invoke wait. When a thread invokes d.wait, it must own the intrinsic lock for d — otherwise an error is thrown. Invoking wait inside a synchronized method is a simple way to acquire the intrinsic lock.

When wait is invoked, the thread releases the lock and suspends execution. At some future time, another thread will acquire the same lock and invoke Object.notifyAll, informing all threads waiting on that lock that something important has happened。

分享到:
评论

相关推荐

    java面试宝典2012版.pdf

    为什么? 8、用最有效率的方法算出2乘以8等於几? 9、请设计一个一百亿的计算器 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11、"=="和equals方法究竟有什么区别? 12、静态变量和...

    最新Java面试宝典pdf版

    为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段代码有什么不足之处? 112 29、说出数据连接池的工作机制是什么? 113 30、为什么...

    java面试题

    为什么要用?spring如何实现声明式的事务管理? 答:声明式的事务管理主要是将在进行对数据库中数据的添加或者修改时需要执行事务管理,主要是为了避免在执行添加或修改的时候添加或修改不完全正确,导致数据丢失。...

    JAVA面试宝典2010

    为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段代码有什么不足之处? 112 29、说出数据连接池的工作机制是什么? 113 30、为什么...

    Java面试宝典-经典

    为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段代码有什么不足之处? 112 29、说出数据连接池的工作机制是什么? 113 30、为什么...

    java面试题大全(2012版)

    为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段代码有什么不足之处? 112 29、说出数据连接池的工作机制是什么? 113 30、为什么...

    java面试宝典2012

    为什么要用? 121 26、大数据量下的分页解决方法。 121 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 122 28、这段代码有什么不足之处? 123 29、说出数据连接池的工作机制是什么? 123 30、为什么...

    Java面试宝典2012版

    为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段代码有什么不足之处? 112 29、说出数据连接池的工作机制是什么? 113 30、为...

    Java面试宝典2012新版

    为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段代码有什么不足之处? 112 29、说出数据连接池的工作机制是什么? 113 30、为什么...

    变态级JAVA程序员面试32问(附答案)

    为什么要有 GC? GC(Garbage Collector)是一种垃圾收集机制,用于回收无用的对象,以释放内存空间。GC 的存在是为了避免内存泄露和提高程序的性能。 9. String s = new String("xyz"); 创建了几个 String Object...

    net学习笔记及其他代码应用

    11.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答:一般为3层 数据访问层,业务层,表示层。 数据访问层对数据库进行增删查改。 业务层一般分为二层,业务表观层...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【消息队列】为什么要使用消息队列 156 【消息队列】ActiveMQ服务器宕机怎么办? 160 【消息队列】丢消息怎么办? 161 【消息队列】持久化消息非常慢 162 【消息队列】消息的不均匀消费 162 【消息队列】ActiveMQ中...

    超级有影响力霸气的Java面试题大全文档

    为什么要有GC?  GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域...

    java高级工程师面试题

    现在假设一开始放入瓶中的为两个细菌,那么到充满瓶子要多长的时间?这道题目考查了候选人的逻辑思维能力和问题解决能力。可以使用数学计算来计算出细菌充满瓶子的时间。 专业部分 6. 简述一下面向对象的特征,并...

    android2.2.3里面的handler源码,可用于学习,或用于java、javafx等项目,作为线程消息队列使用。.zip

    2. Java多线程:如何创建和管理线程,使用synchronized关键字,wait/notify机制,以及ThreadLocal等。 3. Java基础:包括类、对象、继承、接口、异常处理、IO流、集合框架(如ArrayList、HashMap)等。 4. JavaFX...

    java面试题(里面有好几个文件)

    4. **多线程**:Java提供了丰富的多线程支持,包括Thread类、Runnable接口、同步机制(synchronized关键字、wait/notify、Lock接口)等。面试中可能会设计到死锁、线程安全、线程池等内容。 5. **网络编程**:TCP/...

    多线程相关面试问题.docx

    wait()、notify() 和 notifyAll() 只能在同步控制方法或者同步控制块里面使用,而 sleep() 方法可以在任何地方使用。 五、如何保证线程安全? 线程安全是多线程编程中的一种非常重要的问题。保证线程安全的方式有...

    B站河北王校长-并发编程-深度核心面试知识汇总.pdf

    并发编程深度核心面试知识汇总 ...* 调用共享对象的notify()方法后,会唤醒一个在该共享变量上调用wait系列方法后被挂起的线程。 * 被唤醒的线程不能马上从wait()方法返回,需要重新获取锁并继续执行。

    Java多线程机制(讲述java里面与多线程有关的函数)

    9.7 在同步方法中使用wait(), notify和notifyAll(): 这些方法用于线程间通信。wait()使当前线程进入等待状态,直到收到其他线程的唤醒信号;notify()唤醒一个等待的线程,notifyAll()唤醒所有等待的线程。 9.8 挂...

Global site tag (gtag.js) - Google Analytics