最近在复习多线程只是,遇到这样一个问题,先看一下图:
图中画出join与sleep实现了相同的效果,那就是让当前线程处于阻塞状态,但是这个状态中,线程的对象锁依然存在,不同于wait方法;
而实际上join的实现内部使用的是wait方法,那么请问是图画错了还是我理解的有问题;
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
已采纳
关于Java多线程的join()方法的问题
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
3条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
zoyation 2019-02-22 01:19关注1.sleep()方法是属于Thread类中的。而wait()方法,则是属于Object类中的。
2.sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当**指定的时间**到了又会自动恢复运行状态。
再调用sleep()方法的过程中,线程不会释放对象锁。
3.Join方法实现是通过wait(小提示:Object 提供的方法)。 比如主线程为main,当main线程调用子线程join时候,main线程会获得子线程线程对象的锁(wait 意味着拿到该对象的锁),调用该子线程对象的wait(等待时间),直到该子线程对象唤醒main线程 ,比如退出后。这就意味着main 线程调用子线程join时,必须能够拿到线程对象的锁。
sleep:常用于简单的等待,比如死循环里面一直处理数据,让程序休息比较短的时间等情况下
join方法常用主线程等都所有子线程执行完了再继续执行,比如多个子线程并发计算,主线程要用所有子线程计算的结果,或者汇总结果本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决评论 打赏无用 1举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2023-09-14 06:43本文对Java语言的多线程编程进行了详细的讲解,涵盖了Java的线程机制、线程的创建、执行、结束、优先级、状态及状态间的转换、共享访问与线程同步、wait和notify在线程间的交互、Thread类的其他重要方法等方面的内容...
- 2020-09-04 08:46Java多线程编程中的`join()`方法是线程同步的一种重要机制,它的主要作用是确保当前线程等待另一个指定线程执行完毕后再继续执行。在并发编程中,当我们需要依赖其他线程的结果或者顺序执行一系列任务时,`join()`...
- 2020-08-27 17:50Java多线程join方法是一种非常重要的技术,在Java并发编程中,线程的join方法可以使得一个线程等待另一个线程的执行完毕,然后继续执行。这种机制可以确保线程的正确执行顺序,避免了线程安全问题。 join方法的使用...
- 2020-09-04 09:47`join()`方法在Java多线程编程中扮演着重要角色,它可以确保线程的执行顺序,避免数据竞争等问题。通过对`join()`方法的源码分析,我们可以理解其内部是如何通过`wait()`方法实现线程间的同步。在实际开发中,合理...
- 2023-10-24 14:56Java多线程编程深入详解 多线程编程是Java编程语言中的一种重要技术,用于提高程序的执行效率和响应速度。在本文中,我们将深入探讨Java多线程编程的基础知识和高级技术。 什么是多进程和多线程? 在计算机科学中...
- 2020-08-31 02:20总结一下,`join()`方法是Java多线程中实现线程同步和协作的关键工具,它使得一个线程能够等待另一个线程的完成,从而保证特定的执行顺序。理解并合理使用`join()`对于编写高效、可靠的多线程程序至关重要。在实际...
- 2020-09-04 08:45Java多线程编程中,从线程返回数据是并发编程中的常见需求,通常有以下两种主要方法:通过类成员变量和方法返回数据,以及通过回调函数返回数据。 ### 一、通过类成员变量和方法返回数据 这种方法的核心是利用线程...
- 2025-03-05 13:38内容概要:本文深入探讨了Java多线程编程的关键概念和技术细节。文章涵盖了线程的基础概念及其创建方式(实现Runnable接口和继承Thread类),讲解了线程的生命周期各个阶段,并详细阐述了线程的控制方法如join/yield...
- 2024-10-16 13:05内容概要:本文详细介绍了 Java多线程编程的基础知识和高级技术。内容涵盖线程的概念与重要性、创建线程的方式、线程的生命周期与基本控制方法、线程同步与死锁、线程间通信、线程池与 Executor框架、并发集合与原子...
- 2020-08-25 06:29Java中的线程join方法是一种实现线程同步的方式,可以将原本并行执行的多线程方法变成串行执行的。在Java中,线程join方法的作用是使当前线程等待另一个线程的结束,然后再继续执行当前线程的任务。 在Java中,线程...
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司