- 博客(1439)
- 资源 (68)
- 收藏
- 关注
原创 C/C++学习总结
文章目录Markdown常用语法一、面试二、编程语言1.C/C++(1)C和C++进阶的学习笔记总结目录(2)Linux系统编程(3)C语言开源项目(4)C++开源项目(5)Linux运维2.java3.python4.数据结构与算法三、分布式四、Docker,OpenStack五、Github和开源项目学习六、个人简历七、关于测试八、镜像地址或网站九、自勉之语Markdown常用语法 (1)CSDN Markdown空行:  (2)分割线:用三个以上的星号、减号、底线来建立一个分
2020-08-16 20:14:00 2149 1
原创 K8S:常用资源对象操作
如果有一种工具能够来帮助我们管理Pod就好了,Pod不够了自动帮我新增一个,Pod挂了自动帮我在合适的节点上重新启动一个Pod,这样是不是遇到上面的问题我们都不需要手动去解决了。幸运的是,Kubernetes就为我们提供了这样的资源对象:Replication Controller简称RC,RC是Kubernetes系统中的核心概念之一,简单来说,RC可以保证在任意时间运行Pod的副本数量,能够保证Pod总是可用的。如果实际Pod数量比指定的多那就结束掉多余的,如果实际数量比指定的少就新启动一些Pod,当P
2024-04-09 13:34:09 1048
原创 K8S:深入理解POD
在上面的例子中,我们只是单纯的创建了一个 POD 实例,但是如果这个 POD 出现了故障的话,我们的服务也就挂掉了,所以 kubernetes 提供了一个Deployment的概念,可以让 kubernetes 去管理一组 POD 的副本,也就是副本集,这样就可以保证一定数量的副本一直可用的,不会因为一个 POD 挂掉导致整个服务挂掉。在这些当中,只有名字是非常需要的,你也可以指定一个更加复杂的属性,例如在容器启动时运行的命令,应使用的参数,工作目录,或每次实例化时是否拉取映像的新副本。
2024-04-09 13:29:17 892
原创 helm与k8基础
Service:Service是K8S最重要的资源对象,K8S中的Service对象可以对应微服务架构中的微服务。一个Pod表示某个应用的一个是实例。apiserver 对内(集群中的其他组件)和对外(用户)提供统一的 REST API,其他组件均通过 apiserver 进行通信。Node:Node节点是K8S集群中的工作节点,Node上的工作负载由Master节点分配,工作负载主要是运行容器应用。scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;
2024-04-07 11:28:12 403
原创 分布式任务队列:cppq
cppq 是一个简单、可靠、高效的 C++17 分布式任务队列。cppq 是一个 C++ 库,用于对任务进行排队并与工作线程异步处理它们。它由 Redis 支持,旨在可扩展且易于入门。客户端将任务放入队列(队列由redis管理)服务器从队列中取出任务并为每个任务启动一个线程任务由多个worker同时处理任务队列用作跨多台机器分配工作的机制。一个系统可以由多个工作服务器和代理组成,从而实现高可用性和水平扩展。
2024-03-21 17:28:39 444
原创 高效的Gitlab Flow最佳实践
三种工作流程,有一个共同点:都采用"功能驱动式开发"(Feature-driven development,简称FDD)。
2024-03-19 15:20:41 1027
原创 taskflow:多线程并行任务
task之间可以并行,那么taskflow和普通线程池的区别在于,可以给task之间添加依赖关系,比如taskA.precede(taskB) 表示taskB依赖taskA;或者taskA.succeed(taskB) 表示taskA依赖taskB;那么构建了这个依赖关系之后,taskflow的能力就是可以在尽可能多的并行处理前提下,保证有依赖的任务之间的调用顺序。首先taskflow是基于graph的,每个独立的task只能在单核单线程上运行,可以看成一个执行单元。例如:B依赖A依赖S;
2024-03-16 10:08:49 194
原创 分布式系统之选举算法
初始化的时候,所有节点都是普通节点。在指定时间内没有收到其他节点Alive信息,则认为自己是主节点,然后向其他节点发送Victory消息,宣布自己是主节点。若发起选举的节点超过一半选票,则成为主节点,状态转换为Leader,其他节点状态有Candidate转换为Follower,leader和follower之间有周期性的心跳包,用于检测主节点存活。在开源的Redis,MongoDB,Zookeeper等软件中也都采用了的选举算法,常用的选举算法有以下三种:Bully算法,Raft算法,ZAB算法。
2024-03-06 09:48:35 558
原创 使用std::unique_ptr Pimpl造成的incomplete type的报错分析和解决
自定义删除器,将delete pImpl的操作,放到widget.cpp源文件中。// 预先声明class Impl;然后在源文件widget.cpp中delete p;这种方法改起来也不复杂,但是弊端也很明显,std::make_unique没法使用了,只能自己手动new,直接看源码吧这里返回的是默认删除器类型的unique_ptr,即std::unique_ptr。// 错误!
2024-02-25 17:11:00 783
原创 Windows安装WSL2精简版教程
打开 控制面版,查看方式可选择大图标,在点击程序与功能—>启用或关闭Windows功能,检查下图中红框圈出内容是否均以打对勾;配置之前的默认登录用户,ubuntu2004.exe config --default-user 导入系统到指定位置,wsl --import WSL版本号。导出系统到指定位置,wsl --export 启动系统后,最好在检查一下虚拟机是否以启动。WSL2需要使用虚拟机,因此需要在系统中启动虚拟机功能。
2024-01-18 14:48:21 1514
原创 【C++20】编译期检测所有未定义行为undefined behavior和内存泄漏(不借助编译选项以及任何外部工具)
【C++20】编译期检测所有未定义行为和内存泄漏,不借助任何外部工具。
2024-01-06 09:57:54 679
原创 使用dlopenC++动态库的函数符号的常规做法
在 C 中,符号名称与函数名称相同:strcpy 的符号将是 strcpy,因为在 C 中没有两个非静态函数可以具有相同的名称。因为 C++ 允许重载(具有相同名称但不同参数的不同函数)并且具有许多 C 所没有的功能(如类、成员函数、异常规范),所以不可能简单地使用函数名称作为符号名称。C++ 有一个特殊的关键字来声明具有 C 绑定的函数:extern “C”。声明为 extern “C” 的函数使用函数名称作为符号名称,就像 C 函数一样。因此,只有非成员函数可以声明为 extern “C”,并且不能重载
2023-11-18 16:31:30 309
原创 Python实现定时对网站进行签到
首先打开我们需要签到的网站,使用Chrome浏览器的F12快捷键(或通过鼠标右键菜单“检查”)打开浏览器的开发者工具,点击 Network 查看所有加载的请求。如下方动图所示,这个时候我们手动点击签到,就会发现出现了一个新的post请求(checkin),不出所料这便是我们签到的请求。将刚刚复制的内容,填写该网站左侧,右侧同时生成了对应的 python requests 代码。剩下的事就很简单了,只需要每天定时执行该代码(模拟发起post签到请求)就可以实现该网站签到。复制cURL(bash)
2023-11-03 10:24:20 387
原创 muduo异步日志库
基本思想是准备2部分buffer:A和B,前端(front end)线程往buffer A填入数据(日志消息),后端(back end)线程负责将buffer B写入日志文件。实现时,在后端设置一个已满缓冲队列(Buffer1~n,2
2023-10-22 09:30:51 539
原创 c++ inline namespace
C++11引入了inline namespace的语法,这个语法可以让程序员在不破坏现有代码的情况下添加新的命名空间。inline namespace的作用是将内层的命名空间成为外层的一个别名。也就是说,当程序员使用外层命名空间的时候,内层命名空间的内容也可以被访问到,不需要加上内层命名空间的限定符。这个特性可以帮助程序员更好地组织代码。举个例子,假设我们有一个命名空间foo,里面包含一个内层命名空间bar。// bar 中的内容// foo 中的内容。
2023-09-25 10:47:16 176
原创 GitLab CI/CD:.gitlab-ci.yml 文件常用参数小结
可以定义跑CI时想要运行的命令或脚本。可以定义想要包含的其他配置文件和模版。可以定义job之间的依赖和缓存。可以执行程序部署并定义部署位置。
2023-09-24 10:58:44 711
原创 C++正则表达式regex使用总结
正则表达式(regular expression)的C++库regex是一种强大的描述字符序列的工具 , C++11中也将正则表达式纳入了新标准的一部分。regex库中常用组件介绍在头文件中包含了多个我们使用正则表达式时需要用到的组件,即 #includeregex库组件详细介绍如下regex表示有一个正则表达式类,比如:regex pattern(“(.{3})(.{2})_(\d{4})!”)全文匹配,要求整个字符串符合正则表达式的匹配规则。
2023-09-23 17:31:19 1008
原创 cpp-stub使用教程(基于Gtest)
配合Gtest使用,因为Gtest的所有接口都是基于虚函数的;此外,由于一些依赖接口不容易Stub或者Mock(或者写Stub test过于麻烦),因此在Gtest的基础上使用cpp-stub进行单元测试用例编写。
2023-09-21 11:58:35 1133
原创 gdb调试C++程序:Cannot evaluate function -- may be inlined
如果你的程序依赖于libcxx,而不是libstdc++.so.6。对应的可以调整cmake编译选项或者选择Debug类型进行编译。配置~/.gdbinit。
2023-09-20 16:53:40 661
原创 如何下载免费文献
搜索“浙江图书馆”,进入左下方功能栏里的“服务大厅”。同样可以免费下载文献:比如杭州图书馆、绍兴图书馆。操作方法与上面类似,通过支付宝来在线办理读者证。白嫖知网的入口之一,就藏在你天天用的支付宝里。办理完毕后,回到支付宝打开卡包,读者证到手。用刚刚获得的账号,从电脑端登录浙江图书馆。但浙江图书馆使用的人比较多,容易卡顿。下滑找到“中国知网数据库总站”,点击“新用户注册”填信息。可以试一试其他图书馆,
2023-08-28 13:28:21 159
原创 C++设计模式之桥接模式
总之,桥接模式适用于需要将抽象部分和实现部分分离的场景,以实现灵活性、可扩展性和解耦的设计。它可以帮助处理多个维度上的变化,并在运行时动态地切换抽象和实现的关系。eg:手机品牌和软件是两个概念,不同的软件可以在不同的手机上,不同的手机可以有相同的软件,两者都具有很大的变动性。
2023-08-23 17:29:59 1066
原创 C++设计模式之适配器模式
类适配器模式使用继承来适配接口;对象适配器模式通过将适配者对象作为适配器类的成员变量来实现适配;无论是类适配器模式还是对象适配器模式,都可以实现接口适配的效果,选择哪种方式取决于具体的需求和设计考虑。
2023-08-23 17:04:02 985
原创 C++中的类型擦除技术
在 main() 函数中,我们创建了两个不同类型的 Derived 对象 d1 和 d2,然后创建了一个 Functor 对象 f。通过调用 f(d1) 和 f(d2),我们将不同类型的对象传递给函数对象 f,它将根据对象的类型调用适当的 foo() 实现。process() 函数接受一个 std::function 类型的参数,它表示一个无返回值、不带参数的可调用对象。C++语境下的类型擦除,技术上来说,是编写一个类,它提供模板的构造函数和非虚函数接口提供功能;所以,这段代码可以过编译。
2023-08-17 17:23:11 696 1
原创 Python使用struct模块
struct模块的主要功能是根据一些特定的格式字符串来解析和构建二进制数据。这些格式字符串指定了数据的布局和类型,以及如何将数据打包(pack)到二进制形式或从二进制形式解包(unpack)。通过socket.recv接收到了一个上面的结构体数据,存在字符串s中,现在需要把它解析出来,可以使用 unpack() 函数.把本地数据再pack成struct格式。
2023-08-17 13:48:07 248
原创 WSL2中使用perf做火焰图
return -1;return -1;int i = 0;for (;number[i]!= 0;return 0;
2023-08-16 17:59:39 369
原创 C++变长模板参数、参数打包、tuple、index_sequence、逗号运算符、与折叠表达式
【代码】C++变长模板参数、参数打包、tuple、index_sequence、逗号运算符、与折叠表达式。
2023-08-03 22:46:32 411
原创 CMake之CPack
在上面的CMakeLists.txt中,最重要的是INSTALL这个指令,上面的INSTALL指令所表达的意思是,需要将LinkLibraryDemo, PrinterInt, PrinterChar 这3个文件打包,其中可执行文件放在/tmp/cmake_demo,这个目录中,静态库和动态库文件则放在默认目录中。如果你不赋值CPACK_DEBIAN_PACKAGE_DEPENDS这个变量,则在debian/control文件中,没有Depends这一行,虽然在你自己的机器上不影响打包构建。
2023-07-07 17:07:45 1791
原创 【C/C++进阶】宏函数实用指南
// NDEBUG来自:#include // NDEBUG就是release # if defined(NDEBUG) # define CHECK_GL(x) \ do {\(x);\(x);return;} // NDEBUG来自:#include // NDEBUG就是release # if defined(NDEBUG) # define CHECK_GL(x) \ do {\(x);\(x);return;
2023-06-11 21:53:15 1106
原创 Autosar之自签名证书与CA证书
验证完整性主要依赖于消息摘要算法的特性,摘要算法的原理是根据一定的运算规则提取原始数据中的信息,被提取的信息就是原始数据的消息摘要,也称为数据指纹。对一份数据,进行一个单向的 Hash 函数,生成一个固定长度的 Hash 值,这个值就是这份数据的摘要著名的摘要算法有 MD5 算法和 SHA 系列算法。摘要算法具有以下特点:一致性: 相同数据多次计算的摘要是相同的,不同的数据(在不考虑碰撞时)的摘要是不同的;不可逆性: 只能正向提取原始数据的摘要,无法从摘要反推出原始数据;
2023-05-29 17:46:59 1174
原创 AutoSar之对称加密和非对称加密
客户端传输重要信息给服务端,服务端返回的信息不需加密,例如绑定银行卡的时候,需要传递用户的银行卡号,手机号等重要信息,客户端这边就需要对这些重要信息进行加密,使用RSA公钥加密,服务端使用RSA解密,然后返回一些普通信息,比如状态码code,提示信息msg,提示操作是成功还是失败。这种场景下,仅仅使用RSA加密是可以的。客户端传输重要信息给服务端,服务端返回的信息需加密,例如客户端登录的时候,传递用户名和密码等资料,需要进行加密,服务端验证登录信息后,返回令牌token需要进行加密,客户端解密后保存。
2023-05-23 11:36:59 686
原创 现代 CMake 模块化项目管理指南
如果模块 Carer 的头文件 Carer.h 虽然引用了其他模块中的 Animal 类,但是他里面并没有解引用 Animal,只有源文件 Carer.cpp 解引用了 Animal。如果不加,在你创建新文件时,myvar 不会自动更新,还是旧的那几个文件,可能出现 undefined symbol,需要重新运行 cmake -B build 才能更新。上图的案例中,我们在根目录下,创建了两个子项目 biology 和 pybmain,他们分别在各自的目录下有自己的 CMakeLists.txt。
2023-05-22 11:33:29 1688
原创 汽车电子电气架构里的VCU DCU ZCU ECU怎么区分?
VCU(Vehicle Control Unit,车辆控制单元):VCU是车辆级别的控制单元,负责管理和协调车辆的各个系统和子系统之间的通信和协同工作。它可以被看作是车辆的大脑,接收和处理来自不同子系统(如动力系统、底盘系统、安全系统等)的信息,并向这些子系统发送指令以控制车辆的运行。ECU(Electronic Control Unit,电子控制单元):随着汽车变得愈加智能,车辆的功能也愈加丰富、愈加复杂,车内的线束、结点都在不断增加;是按照域分为了集成各种相关ECU功能的DCU(域控制器ZCU)。
2023-05-22 10:06:19 4280 3
原创 Python模板字符串Template
使用substitute(dict)或safe_substitute(dict)方法执行替换。使用命名格式化符,这样,对于多个相同变量的引用,在后续替换只用申明一次即可;将已定义的字符串使用Template(str)的形式转换为字符串模板。使用params={}字典键值对的形式定义变量及其需要替换的结果值;使用Template(str)定义字符串模板;使用string中的Template方法;根据需要,设置字符串中需要替换的字符以。使用$标识需替换的变量;
2023-05-12 22:47:06 943
Docker学习资料总结.7z
2020-02-08
VS code的linux服务器端的离线安装教程
2019-11-09
Scientific.Toolworks.Understand.v4.0.811.Incl.Keygen-AMPED.zip
2019-09-07
vscode的remote ssh中需要的ubuntu服务器中的sshd配置文件
2022-06-19
postgresql数据库插件PG-Strom中Scan算子执行流程分析
2022-03-16
CUDAppt.zip
2021-12-28
Shell编程ppt[C++教程网cppcourse[1].com].zip
2020-05-06
跟我一起学C++.zip
2020-05-06
NetworkProgramming-master.zip
2020-05-06
muduo_server_learn.zip
2020-03-12
cpptools-osx.vsix
2019-12-05
VSCode Cpptools最新版1.40.2版本.7z
2019-12-04
VSCode Cpptools.7z
2019-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人