青岛农业大学理学与信息科学学院JAVA语言程序设计课件 第8章.pptVIP

  • 0
  • 0
  • 约2.41万字
  • 约 72页
  • 2019-05-13 发布于广东
  • 举报

青岛农业大学理学与信息科学学院JAVA语言程序设计课件 第8章.ppt

* 8.3 线程的优先级 线程调度 在单CPU的系统中,多个线程需要共享CPU,在任何时间点上实际只能有一个线程在运行 控制多个线程在同一个CPU上以某种顺序运行称为线程调度 Java虚拟机支持一种非常简单的、确定的调度算法,叫做固定优先级算法。这个算法基于线程的优先级对其进行调度 * 线程的优先级 每个Java线程都有一个优先级,其范围都在1和10之间。默认情况下,每个线程的优先级都设置为5 在线程A运行过程中创建的新的线程对象B,初始状态具有和线程A相同的优先级 如果A是个后台线程,则B也是个后台线程 可在线程创建之后的任何时候,通过setPriority(int priority)方法改变其原来的优先级 8.3 线程的优先级(续) * 基于线程优先级的线程调度 具有较高优先级的线程比优先级较低的线程优先执行 对具有相同优先级的线程,Java的处理是随机的 底层操作系统支持的优先级可能要少于10个,这样会造成一些混乱。因此,只能将优先级作为一种很粗略的工具使用。最后的控制可以通过明智地使用yield()函数来完成 我们只能基于效率的考虑来使用线程优先级,而不能依靠线程优先级来保证算法的正确性 8.3 线程的优先级(续) * 假设某线程正在运行,则只有出现以下情况之一,才会使其暂停运行 一个具有更高优先级的线程变为就绪状态(Ready); 由于输入/输出(或其他一些原因)、调用s

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档