线程的执行原理
分析:
- 时间片:即CPU分配给各个程序的时间,每一个进程都被分配一个时间段,称作它的时间片,即该进程允许运行的时间。由于时间片很短(ms级),所以使各个程序从表面上看是同时进行的。
- CPU把一度时间分成很多个时间片,它在一个时间片内只能执行一个进程,然后换下一个时间片,执行下一个进程。
Java线程运行状态与方法调用图:
一、Java线程中常用方法
方法 | 描述 | 详解 |
对象.start() |
表示线程处于活动的,可以抢时间片状态,而不是开始运行。 |
略 |
对象.interrupt() | 表示将线程对象中断。 | 分析 |
对象.stop() | 表示将线程直接终止。(已过时,不安全;如果有正在打开的资源未关闭,而线程直接被关闭) | 略 |
Thread.sleep() | 表示该语句写到哪个线程中,当前线程睡眠。该方法有两个重载的形式,分别是sleep(long)和sleep(long,int) | 略 |
二、线程控制基本方法
方法 | 描述 | 详解 |
isAlive() | 测试线程是否处于活动状态 | 略 |
getPriority() | 更改线程的优先级 | 分析 |
setPriority() | 返回线程的优先级 | 分析 |
Thread.sleep() | 将当前线程睡眠,可指定毫秒数或者毫秒及纳秒数 | 略 |
join() | 调用某线程的该方法,将当前线程与该线程”合并“,即等待该线程结束,在恢复当前线程的运行。 | 分析 |
yield() | 让出CPU,当前线程进入就绪队列等待调度。只要在适当的位置调用即可。 | 略 |
wait() | 当前线程进入对象的wait pool。 | 分析 |
notify() /notifyAll() |
唤醒对象的wait pool中的一个/所有等待线程。 | 分析 |
说明:后续章节将针对不同方法分别进行详细整理。
注:本文源自互联网,经过查阅网上资料整理而成,如涉及到他人整理的成果,在此表示感谢。由于涉及到的参考文章比较多,在此就不再一一列举。
本文是目前个人理解的结果,仅供参考,如后续发现问题,本人会进行相应的更正,也欢迎各位对Java线程感兴趣的朋友或者前辈进行指正。
相关推荐
本文将深入探讨Java JDK 5.0中的关键知识点,包括其主要特性、学习方法、环境配置以及核心概念。 一、Java JDK 5.0的主要特性 1. 自动装箱与拆箱:Java 5.0引入了自动装箱和拆箱机制,使得基本类型和它们对应的...
这份"Java学习笔记"涵盖了从基础到高级的多个Java知识点,旨在帮助开发者深入理解并掌握这门语言。 首先,Java的基础部分包括语法基础和数据类型。在Java中,变量必须先声明后使用,有基本数据类型(如整型、浮点型...
学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...
本Java笔记超级汇总旨在为初学者提供全面的学习资源,帮助他们快速掌握Java的核心概念和实践技巧。 1. **基础语法** - 变量与数据类型:Java支持基本数据类型如整型、浮点型、字符型和布尔型,以及引用数据类型如...
在Java并发编程中,`AbstractQueueSynchronizer`(AQS)是一个重要的基础工具,它是J.U.C(Java Util Concurrency)包下的抽象类,用于构建锁和其他同步组件。AQS的核心是一个整型的`state`变量,用于表示同步状态。...
CoreJava DAY08 常用类 56 CoreJava DAY09 高级语言特征 58 CoreJava DAY10 主方法,静态导入,包装类,枚举 62 CoreJava DAY11 内部类 70 CoreJava DAY12 集合 List 78 CoreJava DAY13 集合 Set 85 CoreJava DAY14 ...
学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...
学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定...
- 【Rxjava的学习笔记】在[com.gradle.java.rxjava](/tree/master/src/main/java/com/gradle/java/rxjava)包名下; - 【LeetCode源码及题解】在[com.gradle.java.leetcode](/tree/master/src/main/java/...
Java面试汇总是一个集合了众多Java相关面试题目的资源,它可能是PDF文档、笔记或者一系列的题目集合。这个压缩包可能是培训机构为了帮助学员准备Java程序员面试而整理的资料,涵盖了Java语言的基础、进阶以及实际...
5. **字符串处理**:String类是Java中非常重要的部分,了解其不可变性、常用方法(如concat, substring, equals, replace, split等)以及StringBuilder和StringBuffer的使用。 6. **异常处理**:通过try-catch-...
其次,"Java学习笔记(必看经典)"通常会包含更广泛的实战经验和技巧: 7. **IO流**:了解输入输出流的不同类别,如字节流和字符流,以及缓冲流、对象序列化等高级特性。 8. **多线程**:理解线程的生命周期,同步...
本资源包“java编程用书汇总”是专为Java初学者准备的,包含了多本有助于理解Java核心概念和进阶技术的书籍及知识笔记。 1. **Java基础** - 对于初学者,理解Java的基础至关重要。这可能包括变量、数据类型、...
文档“amay's notes for 1.4.doc”可能是个人学习笔记,可能包含了对JSCP 1.4版核心概念的理解、关键知识点的摘录,以及可能的编程实例。这样的笔记通常会涵盖类与对象、封装、继承、多态等面向对象的基本概念,还...
**笔记持续更新中!喜欢的话,可以给个 star 噢 ~~** 面向后端开发攻城狮 各种基础知识,包括计组、计网、Java、MySQL、Redis、k8s、zk 等等 操作系统 数据结构 Linux运维 P8架构 面试题汇总 目录 :面向对象,集合...
9. **125条常见的java面试笔试题大汇总.pdf** - 根据文件名,这是125个常见Java面试问题的大集合,适合用来做最后的冲刺复习。 学习这些资料,求职者应重点掌握以下几个关键知识点: - **Java基础**:包括语法、...
"java笔记.zip"可能是一份详尽的Java学习笔记,涵盖了从基础知识到高级特性的深入讲解。这将是一个复习和巩固Java知识的好资源,包括Java 8及更高版本的新特性,如Lambda表达式、Stream API、日期时间API等。 总之...
学习资料汇总 工程技巧 操作系统 算法与数据结构 设计模式 程序 C ++ 书 cmake STL 基础 多线程 泛型编程 测试 网络编程 配置 吉特 高朗 Java 虚拟机 资源 分片球 弹簧 springcloudGateway 专栏 分散...
4. **Java学习笔记1-32.txt**和**Java学习笔记33-37.txt**:这可能是按章节编排的Java学习笔记,覆盖了广泛的Java知识。从基础到进阶,可能包括JVM工作原理、字符串处理、日期时间API、泛型、枚举、匿名内部类、...
学习版本完善工具Gradle以及Java知识 通知公告:项目升级改造,本项目地址迁移到之后,Gradle-demo依旧会更新。但是GradleModular项目更加详细,采用多模块工程划分的方式构建。 项目合伙 Java基础的面向对象基本...