在学习多线程的时候,有一个问题总会困扰着我--
关于sleep方法.当调用此方法时当前线程会在此sleep时间段内让出
执行权,自己处于阻塞状态.
问题是当多个线程并发执行时,都会调用该方法,都会休眠相同的时间,感觉就是
每个线程只是停留了一下,并不能体会到sleep方法的作用?
不知道大家是怎么理解这个问题的,求解!
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

首页/
已采纳
关于线程的问题
收起
- 写回答
- 好问题 1 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
3条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
xiaoyingSUN 2011-07-25 15:00关注下面2个问题是我一个前辈给我讲的(感觉很有用)
Thread.sleep(1000) 在1000毫秒后这个线程会被继续执行么?
答案是,不一定,所以你所谓的“只是停留一段时间”是不准确的
sleep只是告诉机器,接下来这段时间我不参与竞争CPU
可是之后呢?也许正好有一个线程占用着CUP,那就要等它挂起或者结束才能重新分配,之后还要看各个线程的优先级来决定到底执行谁,可能你一个sleep3秒要等3天才轮的上你 (打比方哈)第2个问题就是sleep(0)的含义,sleep零不等于没有sleep么
这个的作用是很明显的
它会让当前线程在释放CPU的同时竞争CPU,这个时候CPU就会按照优先级重新分配,你明明就没睡,眨了下眼,就分配给别人了很多时候体会不到他的作用,是因为面对的情况相对单纯
正如你说的,感觉每个线程都是停留了一下
也许是因为你的多线程优先级没有什么太大差别,大家都是乖乖排队,木有突然插队的
而每个线程处理时间也很短,不会明显影响别的进程,等等
总之我个人理解的sleep的作用
与其说是释放CPU,我更偏向于让CPU重新合理分配本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2018-08-31 01:24wai371447806的博客 偶然间翻到了多线程加锁的帖子,记录一下 多线程间共享变量加不加锁取决于变量类型以及大小,跟CPU单次操作有关。 从:https://blog.csdn.net/youtherzhang/article/details/76093570 大神的测试结果来看(感谢...
- 2022-07-29 04:06是小鱼儿哈的博客 关于线程安全的这些坑,你get到了吗???
- 2018-06-10 13:02大鸡腿同学的博客 1.线程安不安全,可以使用多线程进行测试,如果线程不安全,会出现重复的情况2.线程安全1)在Controller参数中的request如:public void a(HttpServletRequest request)2)自动注入@Autowired3)基类注入基类代码...
- 2021-03-03 08:24要有价值的博客 同事小刚:用过的,平时就是在全局定义一个 static 的 SimpleDateFormat,然后在业务处理方法(controller)中直接使用,至于线程安全… 这个… 倒是没遇到过线程安全问题。 哎,面试官的考察点真
- 2012-03-27 03:24### QT中sqlite多线程操作4个注意问题 在开发基于Qt的应用程序时,经常会遇到需要使用多线程来进行SQLite数据库操作的情况。然而,多线程环境下的数据库操作相较于单线程来说更为复杂,需要特别注意一些细节问题,...
- 2022-04-24 06:41MechMaster的博客 Qt线程相关问题 1. 使用QThread启动线程 1.1 相关概念 1.2 在图形界面程序中启动线程的例程代码 2. 同步线程 2.1 相关概念 2.2 使用信号量来解决生产者-消费者问题 3. 可重入与线程安全 3.1可重入 3.2 线程安全 4. ...
- 2024-01-09 02:13dvlinker的博客 本文详细介绍如何使用 Process Explorer 和 Windbg 排查软件线程堵塞问题。
- 2021-11-14 15:56倾雨Jun的博客 Servlet 的线程安全问题 在 Servlet 中使用的是多线程方式来执行 service()方法处理请求,所以我们在使用 Servlet 时需要考虑到线程安全问题,在多线程中对于对象中的成员变量是最不安全的,所以不要在 Servlet 中...
- 2022-02-21 06:12桃花键神的博客 无锁 就人的性格而言,可以分为乐天派和悲观派。对于乐天派来说,他们总是会把事情往好的方面想。他们认为所有事情总是不太容易发生...如果有多个线程同时需要访问临界区资源,则宁可牺牲性能让线程进行等待,所以说锁
- 2021-05-27 03:31Day Day Learning的博客 C#多线程 一、基本概念 1、进程 首先打开任务管理器,查看当前运行的进程: 从任务管理器里面可以看到当前所有正在运行的进程。那么究竟什么是进程呢? 进程(Process)是Windows系统中的一个基本概念,它...
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司