1. 锁机制概述 1.1 概念与作用 在程序使用多线程处理事务时,难免会遇到访问共享资源的情况,而为了共享资源能够被合理地分配与使用,就引入了锁机制来保证线程访问共享资源的互斥性与同步性,最终目的就是为了保证多线程不会因竞争共享资源而导致死锁等问题,合理地使用锁机制能保证程序的有效运行。 互斥性:在同一时刻,不能有多个线程访问同一共享资源,即让共享…
信号与槽是我个人认为QT中最牛的机制之一,最近没有其他的内容可写,今天就来细细总结一下这个信号与槽机制。 1. 信号与槽机制概述 信号与槽机制可以理解为QT中的一种通信手段,在运行相关代码前,分别声明信号和槽,再利用connect()方法将信号和对应的槽连接起来,之后再需要的地方使用emit触发信号,那么就可以让槽响应。 其中,槽可以是特定的槽函数…
1. 使用vtk提供的格式转换方法 以XML格式为例: vtk库中支持多种格式的读写转换,比如利用XML格式,可以将vtkPolyData格式序列化为string类型,直接使用vtk库中的 vtkXMLPolyDataWriter 方法进行序列化 ,以及 vtkXMLPolyDataReader 方法解序列化。 示例: // 读vtkPolyDat…
1. 避免创建过多中间变量 过多的中间变量不利于代码的可读性,还会增加内存的使用,而且可能导致额外的计算开销。 将用于同一种情况的变量统一管理,可以使用一种通用的变量来代替多个变量。 2. 函数中习惯使用引用传参而不是返回值赋值 常有的一种情况是,需要使用函数进行计算或处理数据,并通过其返回值获得结果。 对于简单的计算或处理,直接使用返回值返回结果…
1. 概述 1.1 正则表达式概述 正则表达式(Regular Expressions,简称 regex)是用于匹配文本模式的一种特殊字符序列,其可以用一系列字符来表示出不同文本的对应模式。正则表达式的应用范围十分广泛,包括验证文本格式、判断字符种类、解析文本信息、转换目标文本、遍历搜索文本、符号化文本等。 一般在文件搜索、浏览器搜索时都可以使用正…
1. Lambda表达式的简述 Lambda表达式是C++11引入的一种函数对象,其使用更为简洁,能更方便的嵌入需要函数的地方。 Lambda表达式也被称为匿名函数,其不需要特定的函数名称,甚至不用指定参数和返回类型。 合理使用Lambda表达式能有效提高代码的可读性,减少代码的冗余量,使代码更为简洁、高效、安全。 2. Lambda表达式的语法格…
1. QThread及moveToThread() 使用情况: 多使用于需要将有着复杂逻辑或需要一直占用并运行的类放入子线程中执行的情况,moveToThread是将整个类的对象移入子线程。 优缺点: 优点:更符合QT的逻辑设计;灵活使用管理线程;将类的任务逻辑与线程逻辑区分开。 缺点:不易于单独对指定函数单独放入子线程,也就不易于将一个类中多个函…
最近,在把Visual Studio2019完全更新到最新Visual Studio2022后,原使用的vcpkg无法正常安装包,会报如下与Visual Studio 2022相关的错误: error: in triplet x64-windows-mixed: Unable to find a valid Visual Studio instan…
一般常用的是C语言风格的强制类型转换(type) expression,这种转换虽然简便,但很是粗糙,无法区分各种细致的转换(比如父类与基类之间的转换,const和非const之间的转换等),并且可能会带来一些难以察觉的问题。 C++为此推出了四种强制类型转换(static_cast、const_cast、dynamic_cast、reinterp…
转载自:The System Design Cheat Sheet: Message Queues - ActiveMQ, RabbitMQ, Kafka, ZeroMQ 本文由 Aleksandr Gavrilenko 发布于2023年12月21日 1. 前言 消息队列是异步服务到服务通信的一种形式。它们对于增强系统的可扩展性、可靠性和可维护性非…