草庐IT

搞懂EventLoop机制

全部标签

c++ - lambda 的捕获机制

我无法理解lambda函数和捕获变量的机制,所以我做了一些测试并得出了非常奇怪的结论。即:classClassA{public:std::functionlambda;voidDoYourStuff(){intx;x=1;lambda=[=](){printf("A%d\n",x);};lambda();x=2;lambda();}};classClassB{public:std::functionlambda;intx;voidDoYourStuff(){x=1;lambda=[=](){printf("B%d\n",x);};lambda();x=2;lambda();}};注意:

基于多反应堆的高并发服务器【C/C++/Reactor】(中)在EventLoop中处理被激活的文件描述符的事件

文件描述符处理与回调函数一、主要概念反应堆模型:一种处理系统事件或网络事件的模型,当文件描述符被激活时,可以检测到文件描述符:在操作系统中,用于标识打开的文件、套接字等的一种数据类型 处理激活的文件描述符的函数:当文件描述符被激活时,需要有一个函数来处理这些事件dispatch函数:用于分发或处理不同类型事件的函数channel结构体:存储与文件描述符相关的事件处理动作的结构体回调函数:在初始化channel对象时指定的读回调和写回调,用于处理不同类型的事件select函数:用于检测多个文件描述符的状态,看是否有数据可读或可写fd_set集合:用于存储文件描述符的集合,通过宏函数FD_ISSE

【TCP】重传与超时机制

前言在网络通信的世界里,传输控制协议(TCP)扮演着一个至关重要的角色。它确保了数据的可靠传输,就像邮差确保每一封信都能准确无误地送达收件人手中一样。但是,网络环境充满了不确定性,数据包可能会因为各种原因丢失或延迟。为了应对这种情况,TCP实现了重传和超时机制,它们就像是邮差手中的“魔法工具”,能够处理那些未按时到达的信件。TCP重传TCP实现可靠传输的方式之一,是通过序列号与确认应答。在TCP中,当发送端的数据到达接收主机时,接收端主机会返回一个确认应答消息,表示已收到消息。1. 重传原理与机制TCP(传输控制协议)是一种面向连接、可靠的传输层协议。为了保证数据的可靠传输,TCP采用了数据包

一篇文章搞懂Docker、DockerCompose

文章目录1、初识Docker1.1、项目部署的问题1.2、Docker如何解决依赖的兼容问题的?1.3.Docker解决操作系统环境差异1.4、Docker如何解决不同系统环境的问题?1.5、小总结2、Docker和虚拟机的区别3、Docker架构3.1、镜像和容器3.2、DockerHub3.3、Docker架构3.4、安装Docker镜像加速3.5、小总结4、Docker的基本操作4.1、镜像4.2、镜像操作命令4.2.1、案例1-拉取、查看镜像4.2.2、案例2-保存、导入镜像4.2.3、小总结4.3、容器操作命令4.3.1、案例-创建并运行一个容器4.3.2、案例-进入容器,修改文件4

一文搞懂设计模式—责任链模式

责任链模式(ChainofResponsibilityPattern)是一种行为型设计模式,它允许多个对象按照顺序处理请求,并且每个对象可以选择自己是否处理该请求或将其传递给下一个对象。这种模式将请求的发送者和接收者解耦,同时提供了更大的灵活性和可扩展性。简介责任链模式通过将多个处理请求的对象组成一条链,使请求在链上传递,直到有一个对象处理它为止。每个处理对象都负责判断自己能否处理该请求,如果可以则进行处理,否则将请求传递给下一个处理对象。这样,请求发送者无需知道具体的处理对象,只需将请求发送到责任链上即可。责任链模式包含以下角色:抽象处理者(Handler):定义一个处理请求的接口,并持有下

一文搞懂ARKit,ARCore,RealityKit和Vuforia

前言AR框架的一个核心是含能够理解特征的场景和各种类型的锚点。锚点有很多种,可根据特定场景来摆放3D模型,甚至可以真人来做距离测量(ARBodyAnchor)。并且这些框架不容忽视的优势是具有进行场景重建和人形遮挡(occlusion)的32位尝试数据。事实上,AR框架的大部分新功能都增强了AR体验质量。硬件也是如此,苹果全新的U1和R1芯片就带来了AR体验质量的跃升。今年苹果带了全新的VisionPro头显(微软HoloLens的一大竞争对手),让我们可以通过手势、眼部追踪和声音指令来与AR场景进行交互。这我们进入了全新的空间计算时代。有哪些玩家GoogleARCore可用于构建Androi

WebSocket服务端数据推送及心跳机制(Spring Boot + VUE):

文章目录一、WebSocket简介:二、WebSocket通信原理及机制:三、WebSocket特点和优点:四、WebSocket心跳机制:五、在后端SpringBoot和前端VUE中如何建立通信:【1】在SpringBoot中pom.xml中添加websocket依赖【2】创建WebSocketConfig.java开启websocket支持【3】创建WebSocketServer.java链接【4】创建一个测试调用websocket发送消息TimerSocketMessage.java(用定时器发送推送消息)【5】在VUE中创建和后端websocket服务的连接并建立心跳机制【6】启动项目

入门:ElasticSearch(es)持久化机制

ElasticSearch持久化机制(nearrealtime)1、名词概念doc:每一条记录,亦称文档segment:分段记录,包含正排(空间占比90~95%)+倒排(空间占比5~10%)的完整索引文件refresh:内存缓存区加载到文件缓存区的过程flush:文件缓存区落地到磁盘的过程commitpoint:提交标志2、持久化持久化流程:数据分别插入translog事务日志和内存缓存区中;内存缓存区满了或者每隔1秒(默认1秒),refresh将内存缓存区的数据生成indexsegment文件并写入文件系统缓存区,此时indexsegment可被打开以供search查询读取,这样文档就可以被

HarmonyOS4.0系统性深入开发05ArkTS卡片运行机制

ArkTS卡片运行机制实现原理图1ArkTS卡片实现原理卡片使用方:显示卡片内容的宿主应用,控制卡片在宿主中展示的位置,当前仅系统应用可以作为卡片使用方。卡片提供方:提供卡片显示内容的应用,控制卡片的显示内容、控件布局以及控件点击事件。卡片管理服务:用于管理系统中所添加卡片的常驻代理服务,提供formProvider接口能力,同时提供卡片对象的管理与使用以及卡片周期性刷新等能力。卡片渲染服务:用于管理卡片渲染实例,渲染实例与卡片使用方上的卡片组件一一绑定。卡片渲染服务运行卡片页面代码widgets.abc进行渲染,并将渲染后的数据发送至卡片使用方对应的卡片组件。图2ArkTS卡片渲染服务运行原

一文搞懂Linux时区设置、自定义时区文件

概念介绍常说的Linux系统时钟有两个一个是硬件时钟(RTC),即BIOS时间,一般保存的是GMT0时间,没时区、夏令时的概念一个是当地时钟(LTC),即我们日常经常看到的时间,比如date命令获取的时间,一般是在GMT时间的基础上增加或者减去0~12小时世界标准时间(UTC)CoordinatedUniversalTime,协调世界时,又称世界标准时间或世界协调时间,是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间格林尼治标准时间(GMT)GreenwichMeanTime,格林尼治时间,又称格林尼治平均时间或格林尼治标准时间,旧译格林威治标准时间,GMT是指