并发编程理论基础——合适的线程数量和安全的局部变量(十)

多线程的提升方向

  1. 主要方向在于优化算法和将硬件的性能发挥到极致
  2. 想要发挥出更多的硬件性能,最主要的就是提升I/O的利用率和CPU的利用率以及综合利用率
  3. 操作系统已经解决了磁盘和网卡的利用率问题,利用中断机制还能避免 CPU 轮询 I/O 状态,也提升了 CPU 的利用率。但是操作系统解决硬件利用率问题的对象往往是单一的硬件设备,而我们的并发程序,往往需要 CPU 和 I/O 设备相互配合工作,也就是说,我们还需要解决 CPU 和 I/O 设备综合利用率的问题。
  4. 如果 CPU 和 I/O 设备的利用率都很低,那么可以尝试通过增加线程来提高吞吐量。

创建多少线程数合适

  1. 我们的程序一般都是CPU和I/O操作交互执行的,其中I/O设备的速度要比CPU慢的多,所以I/O操作时间也要比CPU操作时间长的多,这种情况被称为I/O密集型计算
    • 最佳的线程数是与程序中 CPU 计算和 I/O 操作的耗时比相关的
    • (单核)最佳线程数 =1 +(I/O 耗时 / CPU 耗时)
    • (多核)最佳线程数 =CPU 核数 * [ 1 +(I/O 耗时 / CPU 耗时)]
  2. 还有一个与之相对的被称为CPU密集型计算,大部分场景下都是纯CPU计算
    • 对于 CPU 密集型的计算场景,理论上“线程的数量 =CPU 核数”就是最合适的
    • 不过在工程上,线程的数量一般会设置为“CPU 核数 +1”,这样的话,当线程因为偶尔的内存页失效或其他原因导致阻塞时,这个额外的线程可以顶上,从而保证 CPU 的利用率。

注意:工作中都是按照逻辑核数来的,理论值和经验值仅供参考,实际上还是要靠压测

方法是怎么执行的

当你调用一个方法时,CPU 要先找到方法的地址,然后跳转到这个地址去执行代码,最后 CPU 执行完方法后返回。

CPU 去哪里找到调用方法的参数和返回地址以及局部变量

  1. 通过 CPU 的堆栈寄存器,CPU支持的栈结构被称为调用栈
  2. 每个方法在调用栈里都有自己的独立空间,称为栈帧,每个栈帧里都有对应方法需要的参数和返回地址以及局部变量。当调用方法时,会创建新的栈帧,并压入调用栈;当方法返回时,对应的栈帧就会被自动弹出。也就是说,栈帧和方法是同生共死的。
  3. 调用栈和线程之间是什么关系:每个线程都有自己独立的调用栈
  4. 局部变量的作用域是方法内部,也就是说当方法执行完,局部变量就没用了

Java 方法里面的局部变量是否存在并发问题

没有。因为每个线程都有自己的调用栈,局部变量保存在线程各自的调用栈里面,不会共享,所以自然也就没有并发问题。

 

 

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

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

相关文章

【算能全国产AI盒子】基于BM1688CV186AH+FPGA智能物联工作站,支持差异化泛AI视觉产品定制

在数据呈现指数级增长的今天,越来越多的领域和细分场景对实时、高效的数据处理和分析的需求日益增长,对智能算力的需求也不断增强。为应对新的市场趋势,凭借自身的硬件研发优势,携手算能相继推出了基于BM1684的边缘计算盒子&#…

VS Code 配置cmake(Linux环境)

通过sudo apt install cmake在linux上安装cmake 在Vs Code中安装这两个插件 通过命令whereis cmake获取linux中cmake的路径信息 右键CMake Tools右下角齿轮标志,选择扩展设置(Extension Settings) 注意要设置的是本地,还是远程连接…

如何在FastAPI服务器中添加黑名单和白名单实现IP访问控制

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 添加黑名单功能步骤1:安装依赖步骤2:创建FastAPI应用步骤3:添加黑名单📝 添加白名单功能步骤1:创建白名单列表步骤2:添加白名单检查⚓️ 相关链接 ⚓️📖 介绍 📖 在现代网络应用开发中,为了增强…

(9)农作物喷雾器

文章目录 前言 1 必要的硬件 2 启用喷雾器 3 配置水泵 4 参数说明 前言 Copter 包括对农作物喷雾器的支持。该功能允许自动驾驶仪连接到一个 PWM 操作的泵和(可选)旋转器,根据飞行器速度控制液体肥料的流动速度。 稍微过时的视频显示了…

【PB案例学习笔记】-24创建一个窗口图形菜单

写在前面 这是PB案例学习笔记系列文章的第24篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gite…

第一百二十九节 Java面向对象设计 - Java枚举比较

Java面向对象设计 - Java枚举比较 您可以通过三种方式比较两个枚举常量: 使用Enum类的compareTo()方法使用Enum类的equals()方法使用运算符 Enum类的compareTo()方法比较同一枚举类型的两个枚举常量。它返回两个枚举常量的序数差。如果两个枚举常量相同&#xff0…

《山西化工》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问:《山西化工》是不是核心期刊? 答:不是,是知网收录的第一批认定学术期刊。 问:《山西化工》级别? 答:省级。主办单位:山西省工业和信息化厅 主管单位:山…

基于SaaS平台的iHRM管理系统测试学习

目录 目录 1、登录模块 2、员工管理模块 3、Postmannewman软件的安装,学习 1、Postman的使用 2、Postman断言 3、全局变量和环境变量 4、请求时间戳 5、Postman关联 6、批量执行测试用例 7、Postman生成测试报告 8、Postman读取外部数据文件&#xff08…

Java——IO流(一)-(7/8):字节流-FileOutputStream、字节流完成文件拷贝

目录 文件字节输出流:写字节出去 构造器及常用方法 实例演示 案例:文件复制 过程分析 复制照片 复制文件 文件字节输出流:写字节出去 FileOutputStream(文件字节输出流) 作用:以内存为基准&#x…

如何提高pcdn技术的传输效率?

提高PCDN技术的传输效率是一个复杂且多层面的任务,涉及多个关键策略和方法的结合。以下是一些具体的建议和措施,有助于提升PCDN技术的传输效率: 一.优化缓存策略: 精准定位热点内容,优先将这部分内容缓存…

《数字图像处理》实验报告四

一、实验任务与要求 对 Fig0403.tif 进行傅里叶变换并显示其频谱图像;fft2(x) 对 Fig0405.tif 图像进行填充和非填充的高斯滤波,并观察其不同;paddedsize,fft2(x,m,n) 由 sobel 空间滤波算子生成相应的频率…

小柴冲刺嵌入式系统设计师系列总目录

工作两年 逐渐意识到基础知识的重要性✌️ 意识到掌握了这个证书好像就已经掌握了80%工作中用到的知识了。剩下的就在工作的实战中学习 来和小柴一起冲刺软考吧!加油😜 【小柴冲刺软考中级嵌入式系统设计师系列】总目录 前言 专栏目标:冲刺…

最新国内首码对接app平台汇总,一手项目资源!

在当前激烈的移动应用市场竞争环境下,有效推广首次代码App项目变得至关重要。文章将探讨一些推广首次代码App项目的策略和适用的推广渠道,助于开发者获取更多流量和用户关注。 选择可靠的平台来进行推广。 在推广首码App项目之前,首先要考虑…

lmdeploy部署chatglm3模型并对话

lmdeploy部署chatglm3模型并对话 环境准备创建虚拟环境安装组件下载模型 chat启动模型并对话启动成api_server服务并对话启动成gradio服务 环境准备 使用30% A100 来运行chatglm3模型,采用lmdeploy来启动。 创建虚拟环境 # 创建虚拟环境 conda create -n langcha…

如何利用AI工具高效写作?

利用AI工具进行高效写作已经成为许多人的选择,因为它们能够帮助用户节省时间、提高效率,并在一定程度上保证写作质量。下面小编就和大家分享的一些具体的步骤和建议,帮助大家更好地利用AI工具进行写作。 1.选择合适的AI写作工具 根据自己的写…

以敏感数据保护为中心,建立健全高校数据安全治理体系

教育行业数据安全事件频发 2023年8月,南昌某高校3万余条师生个人信息数据在境外互联网上被公开售卖,该校受到责令改正、警告并处80万元人民币罚款的处罚,主要责任人被罚款5万元人民币。2023 年 7月,中国人民大学一名毕业生马某某…

BarTender版软件下载及安装教程

​根据行业数据显示强大的配套应用软件甚至能够管理系统安全性、网络打印功能、文档发布、打印作业记录等,为满足不同的需要和预算,BarTender 提供四个版本,每个都拥有卓越的功能和特性。根据软件大数据显示多国语言支持:轻松设计…

微信小程序-人脸核身解决方案

微信小程序-人脸核身解决方案 名词解释 由于不同公司对于 人脸识别的用词不一致,微信小程序背靠腾讯,因此以下的名词主要采集于腾讯云的解释 人脸识别: 主要关注人脸的检测、分析、比对等技术层面,侧重于识别个体身份的技术实现。…

【SSM】医疗健康平台-管理端-统计分析

知识目标 了解ECharts,能够说出ECharts的作用 掌握会员数量统计的实现,能够使用Echarts绘制会员数量统计图形报表 掌握套餐预约占比统计的实现,能够使用Echarts绘制套餐预约占比统计图形报表 掌握运营数据报表的实现 通过对数据进行统计…

Games101 透视投影矩阵推导

目录 齐次坐标 透视投影 透视投影的四棱锥体挤压为正交投影的长方体 变换规定 转换过程 观察1 观察2 关于任意一点挤压后向哪里移动的问题,简单推导了一下 齐次坐标 如下,(x, y, z, 1) 表示空间中的xyz点,让它每个分量乘以k&#…