- 本实验深入探究了openEuler系统的进程管理与调度机制。通过编程实践了进程创建、阻塞与唤醒等基础操作,并对比实现了FCFS、SJF和RR等经典调度算法。重点通过内核模块模拟了CFS及其openEuler特有的QoS优化策略,验证了在线任务对离线任务的“绝对压制”特性,确保了关键业务的低时延响应,并加深了对Linux内核调度逻辑、红黑树应用及国产系统高性能优化特性的理解。 本实验深入探究了openEuler系统的进程管理与调度机制。通过编程实践了进程创建、阻塞与唤醒等基础操作,并对比实现了FCFS、SJF和RR等经典调度算法。重点通过内核模块模拟了CFS及其openEuler特有的QoS优化策略,验证了在线任务对离线任务的“绝对压制”特性,确保了关键业务的低时延响应,并加深了对Linux内核调度逻辑、红黑树应用及国产系统高性能优化特性的理解。
- 别让线程把 CPU 打成“电风扇”——鸿蒙多线程调度与线程池策略的冷思考 别让线程把 CPU 打成“电风扇”——鸿蒙多线程调度与线程池策略的冷思考
- 开篇语哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,... 开篇语哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,...
- 开篇语哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,... 开篇语哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,...
- 在多线程编程中,数据竞争(Data Race)是最常见且最难调试的问题之一。当多个线程并发访问同一内存位置,且至少有一个是写操作时,如果没有正确的同步,就会导致未定义行为。这种bug往往难以复现,却在生产环境中造成灾难性后果。 什么是数据竞争? 正式定义数据竞争发生在以下条件同时满足时:两个或更多线程并发访问同一内存位置至少有一个访问是写操作没有使用同步机制来排序这些访问 一个简单的数据竞争... 在多线程编程中,数据竞争(Data Race)是最常见且最难调试的问题之一。当多个线程并发访问同一内存位置,且至少有一个是写操作时,如果没有正确的同步,就会导致未定义行为。这种bug往往难以复现,却在生产环境中造成灾难性后果。 什么是数据竞争? 正式定义数据竞争发生在以下条件同时满足时:两个或更多线程并发访问同一内存位置至少有一个访问是写操作没有使用同步机制来排序这些访问 一个简单的数据竞争...
- Python 多线程日志错乱:logging.Handler 的并发问题🌟 Hello,我是摘星!🌈 在彩虹般绚烂的技术栈中,我是那个永不停歇的色彩收集者。🦋 每一个优化都是我培育的花朵,每一个特性都是我放飞的蝴蝶。🔬 每一次代码审查都是我的显微镜观察,每一次重构都是我的化学实验。🎵 在编程的交响乐中,我既是指挥家也是演奏者。让我们一起,在技术的音乐厅里,奏响属于程序员的华美乐章。... Python 多线程日志错乱:logging.Handler 的并发问题🌟 Hello,我是摘星!🌈 在彩虹般绚烂的技术栈中,我是那个永不停歇的色彩收集者。🦋 每一个优化都是我培育的花朵,每一个特性都是我放飞的蝴蝶。🔬 每一次代码审查都是我的显微镜观察,每一次重构都是我的化学实验。🎵 在编程的交响乐中,我既是指挥家也是演奏者。让我们一起,在技术的音乐厅里,奏响属于程序员的华美乐章。...
- 多线程编程已成为提高应用性能和响应速度的关键技术之一。然而,多线程环境也带来了一系列挑战,其中最突出的问题之一就是竞争条件(Race Condition)。本文将深入探讨如何通过使用互斥锁(Mutex)来实现线程安全(Thread Safety),并简要介绍协程(Coroutine)作为另一种解决方案。 1. 竞争条件简介竞争条件发生在多个线程尝试同时访问和修改同一资源时。如果这些操作没有正... 多线程编程已成为提高应用性能和响应速度的关键技术之一。然而,多线程环境也带来了一系列挑战,其中最突出的问题之一就是竞争条件(Race Condition)。本文将深入探讨如何通过使用互斥锁(Mutex)来实现线程安全(Thread Safety),并简要介绍协程(Coroutine)作为另一种解决方案。 1. 竞争条件简介竞争条件发生在多个线程尝试同时访问和修改同一资源时。如果这些操作没有正...
- 开篇语哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,... 开篇语哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,...
- 开篇语哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,... 开篇语哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,...
- 现代编程语言通过内存模型(如Java的JMM)抽象底层硬件细节,简化并发编程。核心概念happens-before定义了多线程操作的偏序关系,确保原子性、可见性和有序性。JMM通过6种规则(如程序顺序、锁同步、volatile变量、传递性等)规范线程间数据同步 现代编程语言通过内存模型(如Java的JMM)抽象底层硬件细节,简化并发编程。核心概念happens-before定义了多线程操作的偏序关系,确保原子性、可见性和有序性。JMM通过6种规则(如程序顺序、锁同步、volatile变量、传递性等)规范线程间数据同步
- 本文介绍了原子操作的概念及其实现机制。原子操作指不可中断的一个或一系列操作,通过处理器总线锁定、缓存锁定和原子指令(如CMPXCHG)保证操作的原子性。文章通过Java多线程示例说明非原子操作导致的数据不一致问题,并详细解析了三种实现方案:总线锁定(效率低)、缓存锁定(基于MESI协议)和原子指令(如CAS)。同时指出CAS存在的ABA问题、自旋开销和单变量限制等缺陷,最后展示Java如何使用At 本文介绍了原子操作的概念及其实现机制。原子操作指不可中断的一个或一系列操作,通过处理器总线锁定、缓存锁定和原子指令(如CMPXCHG)保证操作的原子性。文章通过Java多线程示例说明非原子操作导致的数据不一致问题,并详细解析了三种实现方案:总线锁定(效率低)、缓存锁定(基于MESI协议)和原子指令(如CAS)。同时指出CAS存在的ABA问题、自旋开销和单变量限制等缺陷,最后展示Java如何使用At
- 本文探讨了多线程环境下指令重排序对程序执行结果的影响。示例代码展示了代码重排序可能导致x=0、y=0的意外结果。文章分析了重排序的优化原理,包括编译阶段静态重排序和运行阶段动态重排序,指出其必须遵守数据依赖性和as-if-serial语义两个原则。为解决多线程重排序问题,介绍了内存屏障机制,并说明Java通过volatile关键字实现内存屏障,禁止被修饰变量发生指令重排序,从而保证共享变量的可见性 本文探讨了多线程环境下指令重排序对程序执行结果的影响。示例代码展示了代码重排序可能导致x=0、y=0的意外结果。文章分析了重排序的优化原理,包括编译阶段静态重排序和运行阶段动态重排序,指出其必须遵守数据依赖性和as-if-serial语义两个原则。为解决多线程重排序问题,介绍了内存屏障机制,并说明Java通过volatile关键字实现内存屏障,禁止被修饰变量发生指令重排序,从而保证共享变量的可见性
- 本文探讨了并发编程中的核心挑战——内存模型问题。通过Java示例分析了共享变量在多线程环境下的传播机制、可见性和有序性问题。文章指出,处理器缓存与内存速度差异导致的写延迟,以及指令重排序优化是并发异常的根源。重点解析了volatile关键字通过汇编LOCK指令强制缓存一致性,以及synchronized通过锁机制保证内存可见性的原理。本文为理解并发编程底层逻辑提供了系统视角,后续将继续深入相关主题 本文探讨了并发编程中的核心挑战——内存模型问题。通过Java示例分析了共享变量在多线程环境下的传播机制、可见性和有序性问题。文章指出,处理器缓存与内存速度差异导致的写延迟,以及指令重排序优化是并发异常的根源。重点解析了volatile关键字通过汇编LOCK指令强制缓存一致性,以及synchronized通过锁机制保证内存可见性的原理。本文为理解并发编程底层逻辑提供了系统视角,后续将继续深入相关主题
- mmap_sem锁产生的问题分析及优化 mmap_sem锁产生的问题分析及优化
- 线程池种类1、newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。这种类型的线程池特点是:工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 这样可灵活的往线程池中添加线程。如果长时间没有往线程池中提交任务,即如果工作线程空闲了指定的时间(默认为1分钟),则该工作线程... 线程池种类1、newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。这种类型的线程池特点是:工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 这样可灵活的往线程池中添加线程。如果长时间没有往线程池中提交任务,即如果工作线程空闲了指定的时间(默认为1分钟),则该工作线程...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签