01-进程和线程的概述

news2024/9/20 1:07:33

进程和线程的相关概念

概述

进程是一个运行中的应用程序,一个进程是一个执行中的软件

  • 每打开一个软件就相当于启动了一个进程 , 操作系统就会为该进程分配一个内存空间, 进程A和进程B的内存独立不共享

线程是由进程创建的,一个进程可以启动多个线程,线程是一个进程中的执行场景/执行单元

  • 打开迅雷相当于启动了一个进程,在迅雷中下载多个文件,相当于迅雷进程开了多个线程

默认情况下整个进程的所有线程都结束才会造成我们的进程结束,main方法结束只是主线程结束了,主栈空了其它的栈(线程)可能还在压栈弹栈

  • 单线程: 表示同一个时刻只允许执行一个线程
  • 多线程: 表示表示同个一时刻可以执行多个线程,java中支持多线程机制,目的就是为了提高程序的处理效率

线程A和线程B共享堆内存和方法区内存,但是线程A和线程B的栈内存独立即一个线程一个栈

  • 多线程并发: 启动10个线程就会有10个栈空间,每个栈和每个栈之间各自执行互不干扰,多个线程之间的关系是并发或者并行

在这里插入图片描述

并发和并行

并发和并行就是同时执行了多个线程出现的一种情况

  • 并发: 对于单核CPU同一时刻只能处理一件事情,但是由于CPU的处理速度极快,多个线程之间频繁切换执行,给人多个线程一起执行的感觉
  • 并行: 对于多核CPU同一时刻多个任务可以同时执行,如4核CPU表示同一个时间点上可以真正的有4个进程并发执行

获取当前电脑的CPU数量RunTime类的availableProcessors方法

//单例设计模式
RunTime runtime = RunTime.getRunTime;
int cpuNums = runtime.availableProcessors();
System.out.println("当前电脑的cpu数量是" + cpuNums)

Java程序即进程

Java程序的流程: 先启动JVM进程–>JVM再启动一个主线程负责调用main方法和一个垃圾回收线程负责看护回收垃圾(至少有这两个线程并发)

  • 在主线程中执行线程对象的start方法又可以开启其他子线程,此时主线程和子线程同时执行,默认整个进程的所有线程都结束时才会造成我们的进程结束

使用jconsole命令可以监控线程的执行情况

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI 在智能制造:推动创新与效率的提升

AI在智能制造中的应用,正在不断推动着智能制造的发展,为制造业带来巨大的创新和变革。 随着AI科技的不断创新发展,人工智能(AI)在许多领域都取得了显著的进步,其中之一就是智能制造。智能制造是指通过集成…

Vue3-17-ref 模板引用的基本使用

什么是模板引用 简单来说,就是在 js 代码中 获取到 html 中的dom元素的完整信息, 从而实现直接操作dom元素的效果。模板引用的语法 1、给 dom 元素添加 ref名称 属性,指定一个独有的名称; 2、js 中 声明一个 与 dom 元素的 ref 同…

Linux--fork创建子进程详解

目录 一.初识fork函数 二.fork的返回值 三.fork原理 1.fork是如何创建子进程的? 2.为什么fork会有两个返回值? 3.为什么父进程的返回值是子进程的pid,子进程返回值是0? 4.fork之后,父子进程谁先运行?…

SpringBoot2初始入门

适配器 任务调度 父项目、webstarter、bulid 版本管理 自动配置 Spring、SpringMVC 扫描包:主程序及其子包 底层注解: Configuration、Bean 单实例 proxyBeanMethodstrue,组件依赖 Import Conditioal(name"")条件…

访问修饰符

1.java提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围)。 1.公开级别:用public修饰,对外公开 2.受保护级别:用protected修饰,对子类和同一个包中的类公开 3.默认级别:没用修饰符,向同一个包的类公开 4.私有级别:用private修饰,只有本类可以访问,不…

智能优化算法应用:基于模拟退火算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于模拟退火算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于模拟退火算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.模拟退火算法4.实验参数设定5.算法结果6.…

如何处理好面试中的“压力测试”?

作为一名求职者,在面试时有时遇到的是压力测试,有时则遇到的是一些无良企业单位,究竟如何把握忍耐的限度,才合格当一个能经受压力的员工,才能避免对无良单位的一味隐忍! 压力面试是指有意制造紧张,以了解求…

VR播控系统深耕VR教学领域,助力开启未来新课堂

作为提升教育质量的技术之一,VR技术已经逐渐成为培养新一代人才、提升教学质量的重要方式,相比于传统教育,VR技术在教学方面的应用,所带来的变化和效果提升都是非常明显的,尤其是VR播控系统的上线,作为VR教…

MATLAB图解傅里叶变换(初学者也可以理解)

1、概述 相信很多人对于傅里叶变换可能觉得比较复杂和有点难懂,其实不难,它只是一种积分变换。 傅里叶变换,表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。也就是说&qu…

gRPC框架

1、gRPC 与 Protobuf 介绍 微服务架构中,由于每个服务对应的代码库是独立运行的,无法直接调用,彼此间 的通信就是个大问题gRPC 可以实现微服务, 将大的项目拆分为多个小且独立的业务模块, 也就是服务, 各服…

DSP280049C初学(4)-FLASH烧录以及部分程序转移至RAM运行

DSP280049C初学(4)-FLASH烧录以及部分程序转移至RAM运行 实现目的:代码在RAM中调试完成后,就需要将其固化下载到FLASH中,但是FLASH中运行所有程序的话会存在计算或程序运行时间过长的问题,故还需要将部分代…

【C语言初阶】什么操作符你还没搞懂?试试这篇文章让你彻底理解各种操作符!

🎬 鸽芷咕:个人主页 🔥 个人专栏:《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 文章目录 一、 算术操作符:1.1 加减乘除 二、 移位操作符:2.1 计算机中整数的存储2.2 >> 右…

arp欺骗原理以及实现方式

我们知道了arp的作用,那么此时我们怎么可以用他来进行攻击呢?在一个局域网中,我们怎么实现呢? 原理: 这样B就可以做到中间人了,可以接受到两个主机的数据了。换句话来说,在同一个局域网内&…

JVM 详解(JVM组成部分、双亲委派机制、垃圾回收算法、回收器、回收类型、了解调优思路)

目录 JVM 详解(JVM组成部分、双亲委派机制、垃圾回收算法、回收器、回收类型、了解调优思路)1、概念:什么是 JVM ?JVM 的作用? 2、JVM 的主要组成部分?类加载器(Class Loader):简单…

坚鹏:美国智库认为中国在70%战略产业里领先,美国正迅速衰落

【重榜】2023年12月13日,美国智库信息技术与创新基金会(ITIF)发布重榜报告,认为中国在70%战略产业里领先,美国正迅速衰落。美国智库ITIF认为在计算机和电子产品、化工品、机器设备、机动车、基本金属、金属制品、电气设…

linux 网络子系统 摘要

当你输入一个网址并按下回车键的时候,首先,应用层协议对该请求包做了格式定义;紧接着传输层协议加上了双方的端口号,确认了双方通信的应用程序;然后网络协议加上了双方的IP地址,确认了双方的网络位置;最后链路层协议加上了双方的M…

精细化工ERP系统是什么?精细化工ERP软件包含哪些模块

化工是比较特殊的行业,日常的生产经营活动比较繁杂,传统的手工管理模式逐渐不能满足现代化工管理需求。进入信息化时代,如何顺应现代化工市场发展,是摆在很多化工企业面前的难题。 随着行业竞争愈加激烈,各种成本的上…

Word写大论文常见问题(持续更新)

脚注横线未定格 解决方案:“视图”-“草图”,“引用”-“显示备注”-选择“脚注分隔符”,把横线前的空格删掉。

基于Java SSM框架实现抗疫医疗用品销售系统项目【项目源码+论文说明】

基于java的SSM框架实现抗疫医疗用品销售系统演示 摘要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,抗疫医疗用品销售平台当然也不能排除在外。抗疫医疗用品销售平台是以实…