为什么Java中 wait 方法需要在 synchronized 的方法中调用?
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
已结题
为什么Java中 wait 方法需要在 synchronized 的方法中调用?
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
1条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
qq_25376897 2020-11-12 15:21关注本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
报告相同问题?
提交
- 2022-05-24 19:02回答 1 已采纳 调整了下,这个地方是不需要join的,需要一起去竞争,如果你都join有什么必要加锁呢,都不存在竞争;第二就是零钱不足不需要充值num=0;这里num是共享资源只要保证线程安全就行。你可以看看 有啥不
- 2022-01-24 14:12回答 2 已采纳 这个 synchronized 不是给读写加锁,而是给获取读写锁前的操作加锁,获取到后 synchronized 就已经释放了,读写本身是没有锁的
- 2017-11-16 07:50回答 1 已采纳 理论上是随机的,哪个抢到cpu资源就执行哪个,线程初始化的时候会设置默认优先级为5,可以通过设置线程优先级让线程更有抢的cpu资源的优势,但是也只是相对随机的,代码实现的时候就当成随机,不要依赖这一点
- 2022-01-12 23:58Rainly2000的博客 上面只是说明了 wait、notify、notifyAll 必须放在 synchronized 同步块中,但是并没有解释到底是为什么。 我们不妨方向思考一波,如果不要求 wait 方法放在同步块中,而是可以随意调用,会怎样呢? 如下一段代码所...
- 2021-08-12 23:37回答 2 已采纳 多线程下的wait为什么可以不需要notify - 闻鸡睡觉 - 博客园 多线程下的wait方法就像我无处安放的青春,胡乱来,感觉没有一点套路。wait后不需要notify仍可以继续执行。所
- 2022-03-26 16:13回答 1 已采纳 解锁和加锁要为用一个对象, 代码中持有的锁是Nummber.class 对象锁, 解锁应也要Nummber.class 对象解锁, 而代码中是用this的notify解锁。
- 2017-03-06 10:07回答 4 已采纳 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。 使用interrupt方法中断线程。
- 2022-05-04 12:30pilaf1990的博客 让我们看一个例子,如果我们不在synchronized代码块中调用wait()方法会发生什么问题。 假设我们要自己实现一个阻塞队列(当然JDK中已经有了BlockingQueue,这儿只是为了说明问题)。 没有同步(synchronization)的...
- 2022-11-14 21:22回答 1 已采纳 第一个 , 其实还是 做排序 你用冒泡也好、二分也好 , 只不过是在线程里运行的第二个 , 其实你就把他想成单线程也就是不用线程的处理方式 做个两个循环对着两个储户对象的 money 字段每次+100
- 2021-03-04 09:30回答 1 已采纳 猜测一下,你当在主线程时,response在单独TaskMp4 tm时没有关闭是因为response在主线程对象还没有close关闭释放,当你执行excute方法时,对象在你子线程调用,此时主线程结束
- 2021-05-31 13:03回答 5 已采纳 引用题主这句话 当完成前5个打印语句后,将state改为"2号",N改为2,那么这个while循环应该要重新循环了,并且应该直接去if (getN() == 2)的代码块才对。 此时却仍然
- 2023-12-29 10:14用心去追梦的博客 是 Java 中用于线程同步的关键方法,它们分别用于暂停和唤醒一个线程。可以确保线程间的协作和同步,防止数据竞争和不安全的状态,同时也可以确保线程的唤醒是预期的。总之,在同步块中调用。
- 2022-03-24 13:22小牛冲天90后的博客 为什么wait方法必须在同步(synchronized)代码块/方法中调用 调用wait就是释放锁,释放锁的前提是必须先获得锁,先获得锁才能释放锁。 为什么notify,notifyall必须在同步(synchronized)代码块/方法中调用 notify...
- 2022-04-11 17:02互联网渣渣东的博客 为什么要把wait和notify方法放在synchronized中使用?单独写会怎样?
- 2020-06-18 16:40zl1zl2zl3的博客 它们是在有synchronized标记的方法或synchronized块中调用的,因为 wait 和 nodify 需要监视对其调用的 Object。 大多数Java开发人员都知道对象类的 wait(),notify() 和 notifyAll() 方法必须在 Java 中的...
- 没有解决我的问题, 去提问