当前位置: 首页 > news >正文

并发编程笔记1

上下文切换

即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停地切换线程执行,让我们感觉多个线程是同时执行的,时间片一般是几十毫秒(ms)。

CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换。时间开销略小于1ms

单核场景第一个更快(第二个有上下文切换),多核场景第二个更快

当问多线程多少个合适

经多次测试,以及当前服务器的情况,以及做某种任务的情况,多少到多少是最优解(随便编一个,但一定不能回答一个固定值)

多线程---在CPU浪费比例(执行时间:等待时间)严重的情况下使用

单核情况下,不管数量多大,串行一定最快,多核情况下,数量少,串行快,数量多,并行快

测试上下文切换次数和时长

如何减少上下文切换

通常来说,性能最佳是指线程数量合适以及上下文切换合适

加锁只能锁引用类型,不能锁基本类型

sleep睡眠时让出CPU不让出锁

加锁失败会进入阻塞队列---不被OS选中

如何避免死锁

http://www.jsqmd.com/news/457772/

相关文章:

  • 青蛙跳台阶
  • Linux系统编程-数据库-SQLite
  • Flutter —— GetIt、Dio
  • 基于springboot的人事管理系统(源码+文档+调试+讲解)
  • C语言二维数组详解:定义与初始化
  • Claw 批量生成公众号文章实践:一天写 100 篇的工作流复盘
  • 基于大数据+Hadoop+深度学习的酒店评论文本情感分析研究设计与开发(源码+精品论文+答辩PPT等资料)
  • 4个关键步骤解决ComfyUI ControlNet Aux模型下载难题:开源工具配置优化指南
  • 阿姆智创15.6寸工控触摸一体机,赋能工业自动化的硬核终端,源头工厂支持ODM定制
  • 保姆级windows+WSL2(非C盘安装)部署OpenClaw
  • 【问题解决】| 【黑马点评】 | 虚拟机IP总是变动,如何修改成固定IP
  • 影音杂乱?远程看片难?Plex+cpolar 打造随身私人影院,解决所有难题
  • 【算法】约数个数、约数和
  • 【保姆级教程】Windows系统下使用国内阿里云大模型接入Claude Code
  • python中交互式和文件式的运行
  • P2并联混动仿真模型:探索未来汽车的动力与经济性
  • [HC04-Arduino]——光电探测器
  • 消息队列(MQ)入门必知必会五大基础概念:异步,削峰,解耦,生产者,消费者详细解读 一篇搞懂 超强类比
  • 11b. OpenAI API密钥获取指南
  • Serverless冷启动性能优化:从Firecracker微虚拟机隔离到代码预热算法的深度实践
  • 如何告别炉石传说“盲打“困境?HSTracker带来的智能对战革命
  • (五)RT-Thread设备驱动实战--IO模型PIN与UART
  • BTC脚本
  • 3步打造你的专属游戏助手:献给LOL玩家的效率提升方案
  • 周红伟:首家独发,腾讯龙虾WorkBuddy股票预测实操,OpenClaw实 - 今日头条
  • 2026冲孔机市场风向标:这些品牌CNC技术领先,PSH-JSM伺服折弯机/光纤激光切割机,冲孔机品牌有哪些 - 品牌推荐师
  • 字母异位词分组
  • 5个方法让Zotero成为LaTeX文献管理的理想工具
  • 超简单!百度贴吧一键自动签到(附Python完整脚本下载 )Windows 教程 养号用!
  • 2026职业小说作者生存指南:新人写小说签约难?AI辅助流工作法+5款主流的工具测评