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

为什么子进程要继承处理器亲缘性?

请先考虑一个典型的程序为什么需要启动一个子进程。(当然资源管理器不算一个典型的程序)
这是因为手头的任务被分解为子任务,无论出于何种原因,这些子任务都被放入子流程中。例如,在实现多次遍历型编译器/链接器时,其中每次遍历都作为管道中的单独进程实现。

现在考虑为什么你可能希望设置进程的亲缘性以将其限制为单个处理器。
一个原因是,该进程可能存在导致其在多处理器计算机上崩溃或行为异常的错误。对于为单处理器版本的 Windows 编写的旧程序或多处理器计算机仍然非常昂贵时,这很常见。

在这种情况下,你会选择将在挂起状态下启动程序,方法是将 CREATE_SUSPENDED 标志传递给 CreateProcess 函数,然后将该进程的处理器亲缘性设置为单个处理器,然后恢复进程的主线程。

但是,如果问题出在你启动的进程的子进程中怎么办?
由于你无法控制进程启动其子进程的方式,因此无法潜入并设置子进程的亲缘性。

这就是处理器亲缘性需要在子进程中被继承的原因:如果在父进程上设置了亲缘性,这个设置将会应用到该进程可能作为其执行的一部分启动的所有子进程。

可能希望设置进程亲缘性的另一个原因是限制 CPU 使用率。 (例如,你可以将 CPU 密集型应用程序限制为双处理器计算机的单个处理器。)
同样,如果进程启动子进程,则希望这些子进程受到与其父进程相同的限制,以便整个任务仍仅限于单个处理器。

这就是子进程继承处理器亲缘性的原因:因为它几乎总是你所想期待的行为。

总结

工作中我很少涉及处理器亲缘性方面的内容,可能我的程序没有达到有必要使用它们的量级吧。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Why is processor affinity inherited by child processes?》

 

相关文章:

为什么子进程要继承处理器亲缘性?

请先考虑一个典型的程序为什么需要启动一个子进程。(当然资源管理器不算一个典型的程序) 这是因为手头的任务被分解为子任务,无论出于何种原因,这些子任务都被放入子流程中。例如,在实现多次遍历型编译器/链接器时,其中每次遍历都…...

【算法】高精度

作者:指针不指南吗 专栏:算法篇 🐾不能只会思路,必须落实到代码上🐾 文章目录前言一、高精度加法二、高精度减法三、高精度乘法四、高精度除法前言 ​ 高精度即很大很大的数,超过了 long long 的范围&…...

计算机网络-基本概念

目录 计算机网络-基本概念 互联网 Java的跨平台原理 ​编辑 C\C的跨平台原理 解释性语言的跨平台原理(python,js等) 客户端 vs 服务器 什么是协议? 网络互连模型 请求过程 计算机之间的通信基础 计算机之间的连接方式-网线直连(需要用交叉线,而…...

你评论,我赠书~【哈士奇赠书 - 13期】-〖Python程序设计-编程基础、Web开发及数据分析〗参与评论,即可有机获得

大家好,我是 哈士奇 ,一位工作了十年的"技术混子", 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 &#x1f4e…...

【设计模式】我终于读懂了代理模式。。。

👦代理模式的基本介绍 1)代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。 2)被代理的对象可以是远程对象、创建…...

每天10个前端小知识 【Day 2】

👩 个人主页:不爱吃糖的程序媛 🙋‍♂️ 作者简介:前端领域新星创作者、CSDN内容合伙人,专注于前端各领域技术,成长的路上共同学习共同进步,一起加油呀! ✨系列专栏:前端…...

帮助中心在线制作工具推荐这4款,很不错哟!

根据用户咨询问题是否解决的情景,分为三个部分,首先帮助中心恰好有用户需要咨询的问题,用户可以通过点击相关问题即可解决自己的问题,其次,用户第一眼没有在帮助中心解决问题,有个搜索框,用户的…...

rabbitMQ相关文章汇总

RabbitMQ五种工作模式: https://blog.csdn.net/weixin_41882200/article/details/117128590?ops_request_misc%257B%2522request%255Fid%2522%253A%2522167625223516800182771874%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id1…...

【C++】异常

🌈欢迎来到C专栏~~异常 (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤&#x1…...

@Validated注解不生效问题汇总

Validated注解不生效问题汇总 文章目录Validated注解不生效问题汇总背景:一:可能原因原因1:原因2:原因3:原因4:二:补充全局异常对validation的处理背景: 项目框架应用的是validatio…...

华科万维C++章节练习2_4

题目:编写程序,从键盘输入一个字符,然后在屏幕上输出该字符开头的连续3个字符以及对应ASCII码。 输出格式请参看: 请输入一个字符>>A 字符 ASCII码 A 65 B 66 C 67 请按任意键继续. . . 请直接…...

17万字数字化医院信息化建设大数据平台建设方案WORD

【版权声明】本资料来源网络,知识分享,仅供个人学习,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间删除!完整资料领取见文末,部分资料内容: 目录 第1章 医院信息化概述 1.…...

Android 11系统签名修改

Android OS 映像在两个地方使用加密签名:映像中的所有 .apk 文件都必须经过签名。Android 软件包管理器通过下列两种方式使用 .apk 签名:更换应用时,必须使用与旧应用相同的密钥对其签名,才能存取旧应用的数据。无论是通过覆盖 .a…...

亚马逊、沃尔玛卖家自养号退款经验和测评技术

今天给大家介绍下在做亚马逊、沃尔玛退款自养号中的经验,众所周知,自养号最重要的是养号的环境,包括系统的纯净度,下单的信用卡以及其他的一些细节。 环境系统市面上有很多,鱼龙混杂,比如什么lumi&#xf…...

Spring Security in Action 第十一章 SpringSecurity前后端分离实战

本专栏将从基础开始,循序渐进,以实战为线索,逐步深入SpringSecurity相关知识相关知识,打造完整的SpringSecurity学习步骤,提升工程化编码能力和思维能力,写出高质量代码。希望大家都能够从中有所收获&#…...

高级前端二面vue面试题(持续更新中)

action 与 mutation 的区别 mutation 是同步更新, $watch 严格模式下会报错 action 是异步操作,可以获取数据后调用 mutation 提交最终数据 MVVM的优缺点? 优点: 分离视图(View)和模型(Model)&#xff…...

七大设计原则之依赖倒置原则应用

目录1 依赖倒置原则2 依赖倒置应用1 依赖倒置原则 依赖倒置原则(Dependence Inversion Principle,DIP)是指设计代码结构时,高层模块不应该依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节;细节应该依赖抽象。…...

Dubbo面试题2023

1、为什么要用Dubbo 随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务 的架构体系(SOA),也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、 …...

Swift(5)

目录 集合类型 数组 ​编辑 合集 合集操作 字典 Where 集合类型 Swift提供了三种主要的集合类型:组合,合集,字典。 数组是有序的值的集合。 合集是唯一值的无序集合。 字典是无序的键值对集合。 数组 Swift数组的类型的完整写法是…...

[Java 进阶面试题] CAS 和 Synchronized 优化过程

最有用的东西,是你手里的钱,有钱就有底气,还不快去挣钱~ 文章目录CAS 和 Synchronized 优化过程1. CAS1.1 CAS的原理1.2 CAS实现自增自减的原子性1.3 CAS实现自旋锁1.4 CAS针对ABA问题的优化2. synchronized2.1 synchronized加锁阶段分析2.2 synchronized优化CAS 和 Synchroniz…...

揭秘AI_NovelGenerator:重构长篇小说创作的智能架构

揭秘AI_NovelGenerator:重构长篇小说创作的智能架构 【免费下载链接】AI_NovelGenerator 使用ai生成多章节的长篇小说,自动衔接上下文、伏笔 项目地址: https://gitcode.com/GitHub_Trending/ai/AI_NovelGenerator 传统长篇小说创作面临三大核心痛…...

创新部署策略:如何高效配置OpenCore黑苹果安装环境

创新部署策略:如何高效配置OpenCore黑苹果安装环境 【免费下载链接】Hackintosh 国光的黑苹果安装教程:手把手教你配置 OpenCore 项目地址: https://gitcode.com/gh_mirrors/hac/Hackintosh 国光的黑苹果安装教程是一个全面专业的OpenCore配置指南…...

Docker 学习之路-从入门到放弃-Jenkins:4

Jenkins 打开 ✅ 如图已经完全成功安装并初始化Jenkins了!从图1可以确认:能正常访问Jenkins Web管理界面、登录成功核心功能入口(Create a job/Manage Jenkins等)正常显示构建执行器(Build Executor Status&#xff09…...

STM32F103ZET6通过IIC驱动VL53L0X实现多模式激光测距

1. VL53L0X激光测距模块初探 第一次拿到VL53L0X这个小玩意儿时,我完全被它的精准度震惊了。这个比硬币大不了多少的模块,居然能实现毫米级的测距精度!VL53L0X是ST公司推出的新一代飞行时间(ToF)激光测距传感器,它采用940nm不可见激…...

AI Agent社交网络:为什么这是比AI工具更值得关注的方向?

2026年,AI Agent已经从概念走向落地。从AutoGPT到各类AI助手产品,Agent的能力在不断提升。但有一个问题值得关注:当AI Agent越来越强大,它们之间需要社交吗?今天从行业角度,聊聊AI Agent社交网络这个话题。…...

OSPFv3配置实战:如何在IPv6网络中快速搭建邻居关系(附常见问题排查)

OSPFv3配置实战:IPv6网络邻居关系搭建与深度排错指南 当企业网络从IPv4向IPv6迁移时,OSPFv3作为IPv6环境下的动态路由协议选择率持续攀升。根据2023年全球网络架构师调研报告,超过67%的受访者在IPv6部署中首选OSPFv3协议。但许多工程师在初次…...

从RRT到平滑轨迹:机械臂避障规划仿真全流程解析

1. 机械臂避障规划的核心挑战 机械臂在复杂环境中执行任务时,如何安全高效地避开障碍物是工业自动化领域的经典难题。想象一下,当一台六轴机械臂需要在布满设备的车间里抓取零件时,它的运动路径就像在迷宫中寻找出口——不仅要到达目的地&…...

GraphQL.NET依赖注入终极指南:7个MicrosoftDI扩展最佳实践

GraphQL.NET依赖注入终极指南:7个MicrosoftDI扩展最佳实践 【免费下载链接】graphql-dotnet GraphQL for .NET 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-dotnet GraphQL.NET 作为 .NET 生态系统中功能最强大的 GraphQL 实现框架,其依…...

钓鱼即服务韧性机制与执法行动局限性实证研究

摘要 随着网络犯罪生态系统的产业化演进,“钓鱼即服务”(Phishing-as-a-Service, PhaaS)已成为威胁全球网络安全的核心形态。本文以2026年3月针对"Tycoon 2FA"平台的国际联合执法行动为实证案例,深入剖析了该平台在遭受…...

MIPI CSI接口调试实战:从时序校准到稳定传输

1. MIPI CSI接口调试的核心挑战 第一次接触MIPI CSI接口调试时,我盯着示波器上那些跳动的波形完全摸不着头脑。明明按照手册配置了所有参数,为什么图像还是会出现随机噪点?后来才发现,高速串行接口的调试和传统并行总线完全是两个…...