高性能服务系列【五】进程

前面讲线程时,提到协程,有朋友问他们之间的差别。虽然我们的重点是从性能角度来展开分析,但这三个概念出现的关键点其实也是性能驱动的。早期,操作系统通过多进程实现多用户分享处理器时间片。在进程内部,如果有慢速的I/O操作,就可能拖慢了进程处理效率。于是出现线程概念,将不同任务隔离在独立的处理器上,依然共享整个内存空间。

在处理大规模任务时,比如大量HTTP连接,很容易触发线程发生上下文切换,不但要让出处理器时间,还会导致高速缓存失效。协程的出现,就是确保让开发者看来,允许任务去等待资源,但实际上线程仍然占用CPU,只是转而去执行其他协程。

进程是操作系统管理分配资源的基本单位,线程是操作系统调度CPU的基本单位。协程是用户态的调度单位,操作系统并不能感知,所以可以做得比较灵活。

进程之间,是没有直接关系的。所以,一个进程的崩溃不会影响到另外一个进程的运行。基于这个特性,在追求高可靠的系统中,往往会采用多进程模型。这和早期Apache这样的多进程模型不一样,早期的操作系统没有线程的概念。和Apache类似一样功能的nginx,采用的也是多进程模式。对于nginx这类系统,采用多进程模式,反而是个不错的解决方案。因为对于HTTP连接来说,彼此之间基本没有什么需要共享的东西,多线程的优势也就不存在了。

像redis这类高共享的系统,采用多进程模式反而不多见,而是不断有单进程多线程的系统出现,试图替代redis。多进程之间的交换,称之为IPC,常见的有网络,管道,像邮槽,消息队列不多见。windows还有其他方式,可以查资料。

共享内存在对性能要求高的系统通常是唯一选择。共享内存的延迟是150纳秒,管道的延迟是7微秒,TCP环回的延迟是21微秒。共享内存技术出现其实非常早,但用得并不如网络库,甚至不如管道技术。主要是因为共享内存控制起来非常困难,很容易出现问题,导致其他进程也受到影响,反而破坏了进程隔离的本意。除非系统对延迟非常敏感,像交易系统,基本都是必需的组件。

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

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

相关文章

Python中科学技术法的表示方法

在Python中,可以使用字符串格式化的方法来表示科学计数法。具体做法是使用{:e}或{:E}作为占位符,其中e表示小写科学计数法,E表示大写科学计数法,通常用来代表"乘以10的幂"。例如: num 1234567890 formatte…

Vue开发环境构建

相关依赖 1.安装Node https://nodejs.org/en/ 验证是否安装 λ node -v v20.10.0 2.安装cnpm镜像 npm install -g cnpm --registryhttps://registry.npm.taobao.org 3.webpack:构建工具 4.开发工具vscode 安装插件:扩展-搜索vetur,vscode-icon,chinese, 搭…

上门预约平台有哪些优势和特点

在着手开发之前,市场调研是不可或缺的步骤。它能帮助我们深入了解当前上门按摩市场的供需状况及竞争态势,进而挖掘潜在用户的真实需求和期望。这些宝贵的信息将成为我们塑造产品特性和锁定目标用户群体的关键。 紧接着,根据市场调研的反馈&am…

Java | Java的输入与输出

文章目录 Java输出1、System.out.println()2、System.out.printf()3、System.out.print() Java输入1、使用Scanner类的对象获取输入(1)一般类型输入(2)字符串类型输入(3)char类型输入 2、使用System.in.rea…

鸿蒙NEXT实战开发:【截屏】

展示全屏截图和屏幕局部截图。通过[screenshot]模块实现屏幕截图 ,通过[window]模块实现隐私窗口切换,通过[display]模块查询当前隐私窗口。 效果预览 全屏截图局部截图选择区域局部截图 使用说明: 点击右上角图标打开弹窗,选…

插件和依赖的区别

在 Maven 项目中,pom.xml 配置文件中的插件(Plugin)和依赖(Dependency)的区别: 插件(Plugin): 插件是用来扩展 Maven 构建过程的工具,可以执行各种任务&…

江苏某机场多座超高端智慧公厕上线

作为行业信息化程度最高的智慧机场综合管理系统,能为旅客、航空公司以及机场自身的业务管理提供及时、准确、系统、完整的信息服务,达到信息高度统一、共享、调度严密、管理先进和服务优质的目的。而其中的智慧卫生间建设,更是提升机场旅客服…

企业实施了MES管理系统,为什么还要做数据采集

随着信息技术的迅猛发展,企业对于生产管理的精细化、智能化需求日益增长。MES管理系统作为连接企业计划层与控制层的重要桥梁,已经成为现代制造业不可或缺的核心系统。然而,尽管企业实施了MES管理系统,数据采集工作仍然不可或缺。…

Vue源码系列讲解——过滤器篇【一】(用法回顾)

目录 1. 前言 2. 用法回顾 2.1 使用方式 2.2 过滤器的定义 2.3 串联过滤器 3. 小结 1. 前言 过滤器在我们日常开发中应该算是一个非常常用的功能了,它经常会被用来格式化模板中的文本。过滤器可以单个使用,也可以多个串联一起使用,还可…

为什么最近黄金回收如此火爆?

龙行龘龘!龙年不仅买金热,卖金也大热。近来,黄金回收行业异军突起,成为了市场上的热门话题。无论是街头巷尾的小店,还是网络上的各大平台,黄金回收的广告和宣传都屡见不鲜。那么,为什么最近黄金…

Prometheus Kube-Proxy endpoint connection refused

问题 Kube-Proxy endpoint connection refused 解决方法&#xff1a; $ kubectl edit cm/kube-proxy -n kube-system ## Change frommetricsBindAddress: 127.0.0.1:10249 ### <--- Too secure ## Change tometricsBindAddress: 0.0.0.0:10249 $ kubectl delete pod -l …

python代码性能分析

基准测试可以发现程序变慢了&#xff0c;那么是因为什么原因导致性能变慢的&#xff0c;需要进一步做代码性能分析。python同样提供了性能分析工具。 cProfile cProfile是python默认的性能分析器&#xff0c;他只测量CPU时间&#xff0c;并不关心内存消耗和其他与内存相关联的…

操作教程|使用MeterSphere对恒生UFX系统进行压力测试

恒生UFX&#xff08;United Finance Exchange&#xff0c;统一金融交换&#xff09;系统&#xff08;以下简称为“UFX系统”&#xff09;&#xff0c;是一款帮助证券公司统一管理外部接入客户的系统&#xff0c;该系统整体上覆盖了期货、证券、基金、银行、信托、海外业务等各类…

size_t 和double相乘怎么转换size_t

在C中&#xff0c;size_t和double可以直接相乘&#xff0c;结果会自动转换为double类型。如果你想要得到的结果是size_t类型&#xff0c;你需要进行显式类型转换。但是要注意&#xff0c;double转size_t可能会丢失小数部分&#xff0c;只保留整数部分。 以下是一个例子&#x…

【实战】K8S集群部署nacos并接入Springcloud项目容器化运维

文章目录 前言Nacos集群搭建Spring cloud配置nacos将Springcloud项目部署在k8s写在最后 前言 相信很多同学都开发过以微服务为架构的系统&#xff0c;开发微服务必不可少要使用注册中心&#xff0c;比如nacos\consul等等。当然在自动化运维流行的今天&#xff0c;我们也会将注…

2024公共管理、工商管理和贸易经济国际学术会议(PABATE2024)

2024公共管理、工商管理和贸易经济国际学术会议(PABATE2024) 一、【会议简介】 2024公共管理、工商管理和贸易经济国际学术会议&#xff08;PABATE2024&#xff09;将于2024年在郑州举行。该会议旨在为公共管理、工商管理和贸易经济领域的学者和从业人员提供一个交流和分享的…

【Web】Java原生反序列化之jdk7u21——又见动态代理

目录 前言 利用链 简单分析 触发invoke的核心&#xff1a;AnnotationInvocationHandler#equalsImpl 巧用动态代理调用equalsImpl 反序列化的入口&#xff1a;HashSet hash相等构造 为何还是用了LinkedHashSet EXP 前言 jdk7u21这条原生链equals那部分和CC7挺像的(前者…

Day22:安全开发-PHP应用留言板功能超全局变量数据库操作第三方插件引用

目录 开发环境 数据导入-mysql架构&库表列 数据库操作-mysqli函数&增删改查 数据接收输出-html混编&超全局变量 第三方插件引用-js传参&函数对象调用 完整源码 思维导图 PHP知识点&#xff1a; 功能&#xff1a;新闻列表&#xff0c;会员中心&#xff0…

设计模式之备忘录模式

备忘录模式&#xff08;Memento&#xff09; 定义 在不破坏封装的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态。 使用场景 主要角色 发起人 Originator 需要备份的对象看管人 Caretaker 保存备份的容器备忘录 Memento 备份对象 类图…

利用chatgpt写论文使用教程

ChatGPT是人工智能技术的一种&#xff0c;可帮助人们综合运用和分析各种语言技巧&#xff0c;从而优化实验结果、加速研究流程以及提高文章质量。以下是利用ChatGPT写论文的使用教程&#xff1a; 综上所述&#xff0c;利用ChatGPT写论文涉及到一些技巧和方法&#xff0c;需要合…