thread.sleep的作用是什么:

(一)CPU竞争策略

在操作系统中,CPU竞争有很多策略,Unix系统采用的是时间片算法,而Windows采用的是抢占式的。

(1).

在时间片算法中,所有的进程排成一个队列。操作系统按照他们的顺序,给每个进程分配一段时间,即该进程允许运行的时间。如果在 时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程 序所要做的就是维护一张就绪进程列表,,当进程用完它的时间片后,它被移到队列的末尾。

(2).

抢占式操作系统,就是说如果一个进程得到了 CPU 时间,除非它自己放弃使用 CPU ,否则将完全霸占 CPU 。因此可以看出,在抢占式操作系统中,操作系统假设所有的进程都是“人品很好”的,会主动退出 CPU 。在抢占式操作系统中,假设有若干进程,操作系统会根据他们的优先级、饥饿时间(已经多长时间没有使用过 CPU 了),给他们算出一 个总的优先级来。操作系统就会把 CPU 交给总优先级最高的这个进程。当进程执行完毕或者自己主动挂起后,操作系统就会重新计算一次所有进程的总优先级,然后再挑一个优先级最高的把 CPU 控制权交给他。

(二)据上所述,总结出Thread.Sleep()的作用就是告诉操作系统“在未来的多少毫秒内我不参与CPU竞争";

那么有两个问题:

(1).Thread.Sleep(0)的作用是啥?

Thread.Sleep(0)的作用就是“触发操作系统立刻重新进行一次CPU竞争”。竞争的结果也许是当前线程仍然获得CPU控制权,也许会换成别的线程获得CPU控制权。这也是我们在大循环里面经常会写一句Thread.Sleep(0) ,因为这样就给了其他线程比如Paint线程获得CPU控制权的权力,这样界面就不会假死在那里。

(2).假设现在调用了Thread.Sleep(1000),那么在1秒以后这个线程一定会被唤醒么?

答案是:不一定。因为你只是告诉操作系统:在未来的1000毫秒内我不想再参与到CPU竞争。那么1000毫秒过去之后,这时候也许另外一个线程正在使用CPU,那么这时候操作系统是不会重新分配CPU的,直到那个线程挂起或结束;况且,即使这个时候恰巧轮到操作系统进行CPU 分配,那么当前线程也不一定就是总优先级最高的那个,CPU还是可能被其他线程抢占去。

推荐教程: 《java教程》

java sleep的意义_thread.sleep的作用是什么相关推荐

  1. java接口和抽象类的区别和作用

    java接口和抽象类的区别和作用 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过(implements)接口的方 ...

  2. 博客 学院 下载 更多 zxy18210943475 java 和 、|| 和 | 的区别和作用

    博客 学院 下载 更多 zxy18210943475 java && 和 &.|| 和 | 的区别和作用 原创  2016年12月15日 23:58:22 标签: java 6 ...

  3. EL在java里的意义

    EL在java里的意义: EL的语法很简单,他最大的特点就是使用上很方便 例: ${sessionScope.user.sex} 所有EL都是以 ${ 为起始.以} 为结尾的. 上述EL范例的意思是: ...

  4. java 四字节uid,Java入门教程-序列化版本号serialVersionUID的作用

    原标题:Java入门教程-序列化版本号serialVersionUID的作用 Java序列化是将一个对象编码成一个字节流,反序列化将字节流编码转换成一个对象.序列化是Java中实现持久化存储的一种方法 ...

  5. Java 方法使用final 修饰参数的作用

    Java 方法使用final 修饰参数的作用 查看全文 http://www.taodudu.cc/news/show-1232640.html 相关文章: MYSQL 数据库怎样快速的复制表以及表中 ...

  6. Java之String系列--intern方法的作用及原理

    原文网址:Java之String系列--intern方法的作用及原理_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java的String的intern方法的原理. 常量池简介 在 JAVA 语言中 ...

  7. Java内部类的四种分类以及作用

    本文转载自:Java内部类的四种分类以及作用 一.内部类内容解析 1. 内部类的区分 内部类分别有成员内部类.局部内部类.匿名内部类.静态内部类,接下来将分别介绍. 2. 成员内部类 就是位于外部类成 ...

  8. java中类可以包含哪些元素,Java类中包含的元素及作用

    Java类是面试中常考的知识点,是组成Java应用的基本成分,小型和大型的应用都是由类组建而成的.作为合格的Java工程师,一定要清晰了解Java类及其包含的元素及作用,今天学码思Java培训老师就J ...

  9. 请说明一下JAVA中反射的实现过程和作用分别是什么?

    请说明一下JAVA中反射的实现过程和作用分别是什么? Java语言编译后形成.class文件,反射就是通过字节码文件找到一个类,类中的方法及属性等.反射的实现主要通过四个类 Class 类的对象 Co ...

最新文章

  1. MVC页面加载速度优化小记
  2. linux 上oracle安装
  3. fast-rcnn练习资料整理
  4. java jsp js xml_jsp实现将信息放入xml中的方法
  5. 通信网络基础期末复习-第五章-路由算法
  6. 福师大协和学院计算机老师,福建师范大学协和学院新进教师福利问题访谈
  7. 浏览器缓存机制的研究分享
  8. 软件配置管理(五)常用重构技巧
  9. Idea工具开发 SpringBoot整合JSP(毕设亲测可用)
  10. 从像素坐标到相机坐标_【视觉知识】机器视觉几何坐标概论
  11. 聚集索引表插入数据和删除数据的方式是怎样的
  12. 从二进制数据流中构造GDAL可以读取的图像数据
  13. Hadoop学习心得
  14. 用HTML+CSS做一个漂亮简单的个人网页
  15. 一款很好用的软还原卡
  16. 第18章 基于物理的渲染
  17. 怎样推导圆面积计算公式?
  18. 读书,什么时候能改变命运
  19. 腾讯云服务器有多垃圾,清理腾讯云服务器的各种垃圾日志
  20. 【MySql】windows下重置数据库密码

热门文章

  1. 市场调研-邻苯二甲酰亚胺钾市场现状及未来发展趋势
  2. 甘露糖-聚乙二醇-马来酰亚胺 mannose-PEG-MAL 马来酰亚胺-PEG-甘露糖
  3. mPEG-SS 甲氧基PEG琥珀酰亚胺丁二酸酯
  4. 【寒假学习】恋恋有词-考研英语词汇
  5. 万物皆可NFT,UTON NFT正式上线内测
  6. 海光国产CPU芯片和服务器,海光CPU芯片 一文看懂国产CPU!“造不如买”时代终
  7. 晶体三极管结构及其工作原理详解
  8. Android开发读取通讯录信息
  9. 猫学习IOS(四)UI半小时就搞定Tom猫
  10. 基于安卓android studio 的 菜谱食谱APP设计