`
long_yu2
  • 浏览: 312021 次
社区版块
存档分类
最新评论

【java多线程与并发库】---传统java多线程<4> .线程状态及优先级

 
阅读更多

1)线程状态

线程是一个动态运行的实体,每个线程都存在一个从创建、运行到消亡的过程。在一个线程的生命周期中,它将在新建状态、可运行状态、阻塞状态或死亡状态之间进行转换。通过线程的控制和调度可以改变线程的状态。

新建状态。利用new运算符创建线程对象之后、调用start() 成员方法之前就是线程的新建状态。这时,该线程仅仅是一个空对象,系统没有为它分配资源。

可运行状态。使用start()方法启动一个线程之后,线程就变为可运行状态。处于这个状态的线程可能正在执行,也可能没有执行,这取决于它是否获得了使用CPU的时间片及相关资源。

阻塞状态。当一个正在CPU上运行的线程由于等待某个事件发生而让出CPU时,就进入阻塞状态。

死亡状态。死亡状态是线程生命周期中的最后一个阶段,处于这个状态的线程不再具有执行的能力。正常运行的线程完成了全部工作或者线程的执行被强行终止都可导致线程处于死亡状态。

2)线程优先级

Java中每一个线程都有一个优先级。默认情况下,线程将继承父线程的优先级。Java将线程的优先级分为10个等级,分别用1~10之间的数字表示。数字越大表明线程的级别越高。

相应地,在Thread类中定义了表示线程最低、最高和普通优先级的成员变量MIN_PRIORITYMAX_PRIORITYNORMAL_PRIORITY,代表的优先级等级分别为1105。当一个线程对象被创建时,其默认的线程优先级是5

Java提供了一个线程调度器来监控进入就绪状态的所有线程。线程调度器按照线程的优先级决定线程的执行顺序,并采用"抢占式"策略来调度线程的执行。

为了获得某个线程的优先级,用户可以调用Thread类的getPriority()成员方法实现,而调用Thread类的setPriority(int newPriority)成员方法可以改变某个线程的优先级。

分享到:
评论

相关推荐

    Java多线程编程总结

    Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-优先级 Java线程:线程的调度-让步 Java线程:线程的调度-合并 Java线程:线程的...

    java多线程编程总结

    详细的讲述了多线程的各种用法 Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠...

    java多线程笔记

    四、线程的状态转换和生命周期 4 Java线程:创建与启动 7 Java线程:线程名称的设定及获取 10 Java线程:线程栈模型与线程的变量 12 Java线程:线程的调度-休眠 13 Java线程:线程的调度-优先级 16 Java线程:线程的...

    java多线程设计模式详解(PDF及源码)

    (注意,本资源附带书中源代码可供参考) 多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍Java线程相关的设计模式概念,并且通过实际的Java程序范例和 UML图示来一一解说,书中...

    多线程编程指南(系统描述了线程标准 线程同步 多线程编程原则 等)

    1 多线程基础介绍15 定义多线程术语15 符合多线程标准16 多线程的益处17 提高应用程序的响应 17 有效使用多处理器17 改进程序结构17 占用较少的系统资源17 结合线程和RPC(远程过程调用)18 多线程概念18 并发性和...

    多线程编程指南PDF

    多线程基础介绍.........................................................................................................................................15 定义多线程术语...................................

    Java程序设计案例教程-第8章-多线程编程.pptx

    第4页 主要内容 8.1 Java线程模型 8.2 创建线程 8.3 同步与线程间通信 8.4 获取线程状态 8.5 本章小结 8.6 思考和练习 Java程序设计案例教程-第8章-多线程编程全文共36页,当前为第4页。 8.1 Java线程模型 Java对多...

    Java多线程基础-优秀程序员

    线程开发05_线程命名06_线程休眠07_线程优先级08_线程礼貌09_关键资源问题关键../等待...源码详情01_串行与并发02_进程与线程"03线程的生命04.线程的开辟05_线程的命名06_线程的休眠07_线程的优先08_线程的礼让09_...

    Java 多线程编程面试集锦20道问题解答Java多线程编程高难度面试题及解析

    本篇文章提供了20道高难度的Java多线程编程面试题及详细解析,旨在帮助开发者展示出卓越的并发编程能力。在当今高并发的应用场景下,对多线程编程的理解和应用是评估面试者的重要指标。通过这些高难度问题,您将全面...

    java并发编程:线程基础

    本资源致力于向您介绍 Java 并发编程中的线程基础,涵盖了多线程编程的核心概念、线程的创建和管理,以及线程间通信的基本方法。通过深入学习,您将建立扎实的多线程编程基础,能够更好地理解和应用多线程编程。 多...

    Java并发编程原理与实战

    了解多线程所带来的安全风险.mp4 从线程的优先级看饥饿问题.mp4 从Java字节码的角度看线程安全性问题.mp4 synchronized保证线程安全的原理(理论层面).mp4 synchronized保证线程安全的原理(jvm层面).mp4 单例问题...

    Java多线程教程吐血整理干货.md

    多线程 进程和线程 并发和并行 多线程的利弊 什么是上下文切换? 线程的优先级 线程的几种状态 sleep方法和wait方法的区别 stop,suspend,resume等方法为什么会被遗弃 interrupt,interrupted,isInterrupted方法区别 ...

    【多线程并发编程】七 线程的优先级

    线程优先级小知识子线程会使用父线程的优先级线程内使用线程线程优先级越高,是否优先执行? 前言 上一篇文章,我们了解线程安全的那些事,以及如何去解决线程安全的问题,本文就来聊一聊线程的优先级。 1.线程...

    PYTHON学习教程-08-多线程.zip

    4. 多进程编程 时间片 PCB PID 父子进程 优先级 进程特征 进程状态: 就绪态 运行态 等待态 5. ps -aux ps -ajx pstree top nice 6. os.fork() 7. os.getpid() os.getppid() os._exit() sys.exit() 8. 孤儿进程和...

    JAVA程序设计教程

    .........................................................................................................4 §1.2 程序设计方法与语言 .....................................................................

    汪文君高并发编程实战视频资源下载.txt

    │ 高并发编程第一阶段09讲、多线程与JVM内存结构的关系,虚拟机栈实验.mp4 │ 高并发编程第一阶段10讲、Thread构造函数StackSize详细讲解.mp4 │ 高并发编程第一阶段11讲、Thread构造函数StackSize详细讲解-续....

    Solaris链接程序和库指南

    《多线程编程指南》介绍了SolarisTM操(SolarisOperatingSystem,SolarisOS中 POSIX®线程和Solaris线程的多线程编程接口。本指南将指导应用程序程序员如何创建新的多线程程序以及如何向现有的程序中添加多线程。尽管...

Global site tag (gtag.js) - Google Analytics