
线程同步中的 synchronized、锁与交互
本问题旨在实现主线程执行 100 次,子线程执行 10 次,交替进行循环执行。
根据代码,主线程和子线程分别在 synchronized (me) 和 this.run 中处于同步块内,其中 me 是主线程中的一个对象,而 this 是子线程中实现 runnable 接口的对象,它们代表不同的同步锁对象。
在主线程中,wait() 和 notify() 方法使用 me 作为锁对象,而在子线程的同步方法中,wait() 和 notify() 方法使用 this 作为锁对象。这意味着主线程和子线程在不同的锁对象上进行等待和通知。
豆包AI编程
豆包推出的AI编程助手
483 查看详情
为了实现正确的交替执行,需要使用同一把锁来控制线程之间的交互。将主线程和子线程中的 notify() 方法移动 wait() 方法之前,并确保它们使用相同的锁对象(例如 me ),如下所示:
// 主线程wait(me);me.notify();// 子线程wait(me); // 注意,此处的锁对象也为methis.notify();
通过修改代码,主线程和子线程将在同一把锁(me )上进行等待和通知,从而实现预期的交替执行。
以上就是线程同步中如何使用 synchronized、锁和交互实现主线程与子线程的交替执行?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/431656.html
微信扫一扫
支付宝扫一扫