Java多线程详解

进程

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

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

线程的生命周期

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/288503.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python c语言 代码动态检查,python c语言语法分析

大家好,小编来为大家解答以下问题,python c语言 代码动态检查,python c语言语法分析,今天让我们一起来看看吧! Source code download: 本文相关源码 初学编程,应该学习哪一门编程语言,有不少人感…

析构和友元函数

1. 类的析构函数 析构函数的作用,用于释放该类所占用的资源(或者说释放对象)在类的对象使用完时(当类的对象超出了作用域),会自动调用析构函数;如果是在堆区实例化的对象,那么当手动…

软件测试之性能测试

性能测试是与时间相关的。 主要内容 性能测试基础 概念和术语介绍 性能测试模型 性能测试分类介绍 性能测试实施与管理 性能测试基础 为什么要进行性能测试(WHY)(最重要) 应用程序是否能够很快的响应用户的要求? 应…

[DevOps-03] Build阶段-Maven安装配置

一、简要说明 下载安装JDK8下载安装Maven二、复制准备一台虚拟机 1、VM虚拟复制克隆一台机器 2、启动刚克隆的虚拟机,修改IP地址 刚刚克隆的虚拟机 ,IP地址和原虚拟的IP地址是一样的,需要修改克隆后的虚拟机IP地址,以免IP地址冲突。 # 编辑修改IP地址 $ vi /etc/sysconfig…

从科学角度分析,探索选择智能酒精壁炉的原因

酒精壁炉作为一种现代家居取暖方式,引人关注。从科学角度来看,为何选择酒精壁炉成为一个值得探讨的问题。酒精壁炉的燃料—乙醇,是一种简单化合物,其燃烧过程在化学上较为干净。当乙醇燃烧时,其主要产物是二氧化碳和水…

如何将图像数据转换为.mat文件,mat文件内是cell封装的struct格式的数据

在我看论文:《 Holistically-nested Edge Detection (HED) 》的时候,对论文中有关边缘结果的评价指标很感兴趣,于是我就研究了如何计算这些指标 如果有同样感兴趣或者有需要的小伙伴可以下载这里的代码:GitHub - xwjabc/hed: A P…

使用Apache Commons SCXML实现状态机管理

第1章:引言 大家好,我是小黑,咱们程序员在开发过程中,经常会遇到需要管理不同状态和状态之间转换的场景。比如,一个在线购物的订单,它可能有“新建订单”、“已支付”、“配送中”、“已完成”等状态。在这…

openmediavault(OMV) (26)网络(1)ddns-go

简介 "ddns-go" 是一个动态域名解析(Dynamic DNS)工具,用于更新域名的IP地址。它可以自动检测你的公共IP地址,并将其更新到指定的域名解析服务商,以确保你的域名始终与最新的IP地址相匹配。 安装 hub.docker.com上下载ddns-go镜像 配置compose文件 --- versio…

面向对象综合训练综合练习(文字版格斗游戏,对象数组,复杂的对象数组操作)

文章目录 练习一:文字版格斗游戏练习二:文字版格斗游戏进阶练习三:对象数组(商品)练习四:对象数组(汽车)练习五:对象数组(手机)练习六&#xff1a…

【教学类-43-13】 20240103 (4宫格数独:错误版:768套) 不重复的基础模板数量:768套

作品展示:——4宫格 768套不重复模板(64页*12套题) 有错误,实际数量小于768套 背景需求: 测试4宫格数独基础模板有几种。 写个程序,验算是不是真的是乘阶法的288种。 代码展示: 768套4宫格题…

Python for与while循环的介绍和对应练习题的巩固

for循环 重复执行同一段代码就是循环 循环列表 for val in list_name: list_num [1,2,3,4,5,6,7,8,9] for i in list_num:print(i)代码执行顺序 从上往下依次执行 遍历 通过某种顺序把某种集合所有元素都访问一遍 list_food{"火锅","烧烤","张…

Python贪吃蛇小游戏(PyGame)

文章目录 写在前面PyGame入门贪吃蛇注意事项写在后面 写在前面 本期内容:基于pygame的贪吃蛇小游戏 实验环境 python3.11及以上pycharmpygame 安装pygame的命令: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygamePyGame入门 pygam…

【人工智能】为什么说大模型会有「幻觉」问题,又如何去解决呢

大家好,我是全栈小5,欢迎阅读文章! 此篇是【话题达人】序列文章,这一次的话题是《如何解决大模型的幻觉问题》 目录 大模型模型幻觉模型预训练庞大文本数据集语义关系 模型微调特定任务少量标签数据 如何解决普遍方法 大模型 先来…

java仓库管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web仓库管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

双侧电源系统距离保护MATLAB仿真模型

微❤关注“电气仔推送”获得资料(专享优惠) 系统原始数据 双侧电源系统模型如图所示: 仿真模型搭建 将线路AB分成Line1和Line2,将线路BC分成Line3和Line4,用三相电压电流测量模块作为系统母线,根据系统已…

我的NPI项目之设备系统启动(一) -- 客制化/给设备身份的CDT

做为设备设计和制造的公司,我们除了不能制造/生产PCB/PCBA/外壳,其它设备上的所有模块几乎都是自己设计的。那么,作为软件,会涉及到哪些设计内容呢? 选定主chipset/soc,例如qcmxxx/sdmxxx。根据chipset&am…

基于python+selenium的二次封装的实现

这是个人对selenium.webdriver写的一些常用操作的二次封装,也就相当于重写了,不再使用自带的框架,用自己写的框架完成。这样的话使代码更简洁,用自己的思想完成代码的编写。 首先在根目录下创建子目录名为Common作为公用数据&…

前缀和算法 -- [模版]一维前缀和

个人主页:Lei宝啊 愿所有美好如期而遇 目录 本题链接 输入描述 输出描述 算法分析 算法一:暴力求解 算法二:前缀和 预处理前缀和dp表 使用前缀和dp表 解题源码 我们以一道题目为例详解一维前缀和原理。 本题链接 【模板】前缀和…

解决Redis序列化乱码问题

如果我们使用原生的JDK序列化&#xff0c;那么当我们将数据存储到Redis中就会出现乱码的情况 为了解决这个问题我们需要重写RedisTemplate从而解决序列化乱码问题 首先在Maven中引入相应的依赖 <dependency> <groupId>com.fasterxml.jackson.core</group…

ChatGPT 4.0真的值得花钱买入吗?

性能提升&#xff1a; ChatGPT 4.0的推出不仅意味着更先进的技术&#xff0c;还代表着更强大的性能。相较于3.5&#xff0c;4.0在处理任务时更为高效&#xff0c;响应更迅速。 更智能的理解&#xff1a; 随着版本的升级&#xff0c;ChatGPT 4.0对语境的理解能力得到了进一步的…