Java多线程详解

发布时间:2024年01月03日

进程

进程是程序的执行实例,而在进程的执行过程中,它需要操作和管理一系列的数据。这个数据集合通常包括程序的代码程序计数器寄存器堆栈数据段和其他与程序执行相关的信息。这些数据共同构成了一个进程的上下文(context)

程序的代码: 进程需要执行的指令集合,通常是可执行文件中的机器码。

程序计数器:用于指示当前正在执行的指令的位置。

寄存器: 进程执行过程中使用的寄存器,用于存储临时数据和中间结果。

堆栈(Stack): 用于存储函数调用和局部变量等临时数据。

数据段(Data Segment): 存储全局变量和静态变量等数据。

其他相关信息: 包括进程的状态、优先级、打开的文件、网络连接等与执行相关的信息。

注意:任意时刻,cpu总是只运行一个进程,其他进程处于非运行状态

线程

线程是处理器可以调度的最小单位

进程与线程:http://t.csdnimg.cn/6kYAu

并发

多条线程在个CPU上面交替执行

并行

多条线程在个CPU上面同时执行

Java多线程的实现方式

方式一:继承Thread类并重写run方法,创建子类对象并调用start方法开启线程

方式二:实现Runnable接口并重写run方法,创建实现类对象,再创建Thread对象,将实现类对象作为Thread构造器的实参,最后调用Thread实例的start方法

线程的优先级

计算机中,线程的调度有两种,抢占式调度(线程随机执行)和非抢占式调度(所有线程轮流执行)

java中使用的是抢占式调度。

守护线程

JVM 程序在什么情况下能够正常退出?

The Java Virtual Machine exits when the only threads running are all daemon threads.

上面这句话来自 JDK 官方文档,意思是:

当 JVM 中不存在任何一个正在运行的非守护线程时,则 JVM 进程即会退出。

当其他所有非守护线程结束,那么守护线程也会结束
?

线程的生命周期

文章来源:https://blog.csdn.net/Dennis_nafla/article/details/135348838
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。