自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (7)
  • 收藏
  • 关注

转载 Protobuf的RPC框架原理

链接: 基于Protobuf的简单RPC框架实现原理.链接: protobuf基本用法详解.

2021-11-23 17:31:47 309

转载 在Ubuntu环境下使用vcpkg

https://blog.csdn.net/CHYabc123456hh/article/details/109557324

2021-11-14 13:54:25 1475

原创 Reactor模式服务器开发

暂空。

2021-11-08 16:14:57 284

转载 linux eventfd

链接: eventfd.

2021-11-08 11:37:42 84

转载 现代CMake的使用(转)

现代CMake的设计理念和使用:.现代CMake项目中的依赖管理:.

2021-11-06 21:50:48 131

转载 条件变量的pthread_cond_wait/wait

条件变量的wait

2021-11-04 17:14:49 75

转载 C++变参模板类

C++变参模板类:

2021-11-04 15:54:27 225

转载 C++11可变模版参数的妙用

链接:.

2021-11-04 09:16:18 60

转载 条件变量 避免惊群 虚假唤醒(转)

链接.

2021-10-28 16:52:15 172

转载 C++11 信号槽 signal/slot / boost::signals::signal的使用方法

链接: .

2021-10-21 23:16:58 409

转载 RPC-(gRPC)

gRPC总结:链接.

2021-10-10 22:14:10 42

转载 Protobuf serialize到char*,(C++)

Protobuf 序列化到char*,便于在网络传输。链接: link.

2021-08-15 17:11:41 274

转载 Thrift实践(转)

链接: link

2021-08-12 17:54:44 52

转载 Log4Qt 使用笔记(转)

链接: link.

2021-08-09 14:46:15 80

转载 使用epoll+时间堆实现高性能定时器

连接

2021-04-20 21:05:39 171

原创 SO_LINGER 延时关闭 优雅关闭

setsockopt(m_listenfd, SOL_SOCKET, SO_LINGER, &tmp, sizeof(tmp));链接

2021-04-20 16:51:06 135

转载 数据库连接池

https://blog.csdn.net/wwh578867817/article/details/46451193link

2021-04-05 17:19:20 52

转载 服务端处理事件的两种模式--Reactor和Proactor (转载)

服务端处理事件的两种模式–Reactor和Proactor链接: link.

2021-03-26 16:54:05 78

原创 redis异步实现订阅和发布(C++)

发布订阅模式订阅、取消订阅和发布实现了发布/订阅消息范式,发布者不是计划发送消息给特定的订阅者。而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅。订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的。示例使用libevent库、boost库、 hiredis库等,因为是基于异步的发送和接收,需要回调函数来返回确认相关的信息。发布者模块// redis_publisher.h封装了hiredis,实现消息发布给redis的功能。#ifndef REDIS

2021-03-22 16:25:39 2817

原创 数据库连接池

https://github.com/primer9999/MysqlPool

2021-03-22 10:59:46 57

原创 C++操作redis

一般使用的就是hiredis这个库文件,在hiredis上封装一层,封装成面向对象的方法。redis.h#ifndef _REDIS_H_#define _REDIS_H_#include<stdio.h>#include<iostream>#include<string>#include<hiredis/hiredis.h>using namespace std;class Redis{public: Redis(){} ~Re

2021-03-22 10:21:39 385

原创 ZeroMQ---推拉模式

概述推拉模式,PUSH发送,send。PULL方接收,recv。PUSH可以和多个PULL建立连接,PUSH发送的数据被顺序发送给PULL方。比如你PUSH和三个PULL建立连接,分别是A,B,C。PUSH发送的第一数据会给A,第二数据会给B,第三个数据给C,第四个数据给A。一直这么循环。最上面是产生任务的 分发者 ventilator中间是执行者 worker下面是收集结果的接收者 sink代码Ventilator.cpp#include <zmq.h>#include &l

2021-03-17 16:50:04 658

原创 ZeroMQ---订阅发布模式

概述ZeroMQ的订阅发布模式是一种单向的数据发布,当客户端向服务端订阅消息之后,服务端便会将产生的消息源源不断的推送给订阅者。一个发布者,多个订阅者的关系(1:n),当发布者数据变化时发布数据,所有订阅者均能够接收到数据并处理,这就是发布/订阅模式。发布者使用PUB套接字将消息发送到队列中,订阅者使用SUB套接字从队列中源源不断的接收消息。新的订阅者可以随时加入,但之前的消息是无法收到的。已有的订阅者可以随时退出。订阅者还可以增加“过滤器”用来有选择性的接收消息。代码pub.cpp#incl

2021-03-17 15:03:39 631

原创 ZeroMQ---请求回应模式01

ZeroMQZeroMQ简述zeromq是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。ZeroMQ 把通讯的需求看成四类。其中一类是一对一结对通讯,用来支持传统的 TCP socket 模型,但并不推荐使用。常用的通讯模式只有三类:请求回应模型。由请求端发起请求,并等待回应端回应请求。请求端和回应端都可以是 1:N 的模型。通常把 1 认为是 server ,N 认为是 Client 。ZeroMQ 可以很好的支持路由功能

2021-03-16 19:38:49 265

转载 Linux编程中的坑-C++中exit和return的区别

https://blog.csdn.net/weixin_34148456/article/details/85900320?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-3

2020-06-17 10:57:06 214

转载 单例模式 new方式下的内存释放

单例模式 内存释放方式new方式下的delete:https://blog.csdn.net/qq_34552886/article/details/70313613

2020-06-17 10:16:14 278

转载 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值

关于socket阻塞与非阻塞情况下的recv、send、read、write返回值https://blog.csdn.net/wyyzsl212328/article/details/23860785欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本...

2020-04-20 20:29:45 136

原创 C++中类的前置声明与使用头文件区别(转载)

类的前置声明与使用头文件区别添加链接描述

2019-09-08 17:48:35 309

原创 MySql的四种事物隔离级别

事物的基本要素: ACID。事物的并发问题:脏读: 事物A读取了B的数据,然后B回滚操作,那么A读取到的数据是脏数据。不可重复读: 事物A多次读取同一数据,事物B在事物A读取的过程中,对数据做了更改并提交,导致事物A多次读取同一数据时,结果不一致。幻读: 系统管理员A将数据库中所有学生成绩从具体分数改为ABCDE等级,但系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结...

2018-09-27 23:02:28 165

原创 最小的K个数--(快排法)

class Solution {public: vector&lt;int&gt; GetLeastNumbers_Solution(vector&lt;int&gt; input, int k) { vector&lt;int&gt; result; int len = input.size(); if (len == 0 ||...

2018-09-04 15:14:04 269

原创 二维数组(动态规划)

简要描述: 给定一个M行N列的矩阵(M*N个格子),每个格子中放着一定数量的平安果。 你从左上角的各自开始,只能向下或者向右走,目的地是右下角的格子。 每走过一个格子,就把格子上的平安果都收集起来。求你最多能收集到多少平安果。 注意:当经过一个格子时,需要一次性把格子里的平安果都拿走。 (1&amp;lt;=N,M&amp;lt;=50);每个格子里的平安果数量是0到1000(包含0和1000...

2018-08-08 16:59:29 4830 1

原创 质数因子

输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )int main(void){ long input; while (cin &gt;&gt; input) { while (input != 1) { for (int i = 2; i &lt;= in...

2018-08-02 14:32:58 161

原创 十六进制的数值字符串,输出该数值的十进制字符串

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入)#include &amp;lt;iostream&amp;gt;#include &amp;lt;string&amp;gt;#include &amp;lt;cmath&amp;gt;using namespace std;int main(void){ string str; int i = 0, len, sum;...

2018-08-02 14:14:12 1172

原创 计算字符串最后一个单词的长度,单词以空格隔开

#include &amp;lt;iostream&amp;gt;#include &amp;lt;string&amp;gt;using namespace std;int Num(char *str){ if (str == nullptr) return 0; char *ptr = str; int num = 0, index = 0, n = 0; whi...

2018-08-01 15:54:58 1094

原创 一颗二叉搜索树,找出树中的第k大节点

最朴素的想法,中序遍历就是二叉搜索树的递增序列,那直接写出整棵树的中序遍历即可。class Solution{public: TreeNode* KthNode(TreeNode* pRoot, int k) { if (!pRoot || k &lt; 0) return nullptr; vector&lt...

2018-08-01 13:48:08 4620 1

原创 Redis知识梳理

Redis是速度非常快的非关系型内存键值数据库,可以存储键和五种不同类型的值之间的映射。 键的类型只能为字符串,值支持五种数据类型为:字符串、列表、集合、有序集合、散列表。STRING set hello world OK get hello “world” del hello (integer) 1 get he...

2018-07-31 15:32:20 677

原创 MySQL知识梳理

数据库概念、MySQL

2018-07-30 16:57:30 188

原创 I/O模型

I/O模型一个输入操作通常包括两个阶段: 1. 等待数据准备好 2. 从内核向进程复制数据unix下有5种I/O模型 - 阻塞IO - 非阻塞IO - IO复用 - 信号驱动式IO - 异步IO阻塞I/O应用进程被阻塞,直到数据复制到应用进程缓冲区才返回。 非阻塞式I/O应用进程执行系统调用时,内核返回一个错误码。应用进程可以继续执行,但需要不断的执行系...

2018-07-28 21:38:53 185

原创 字符串转为整数,实现atoi功能

atoi通过全局变量来区分返回0的情况。 如果是非法输入,返回0,并把这个全局变量设为特殊标志; 如果输入是”0”,则返回0,不会设置全局变量。enum Status { kValid = 0, kInvalid};int g_nStatus = kValid;int StrToInt(const char* str){ g_nStatus = kInvalid; ...

2018-07-28 15:30:12 364

原创 c++11获取异步任务结果,std::packaged_task和std::future

如果我们的主线程A希望新开辟一个线程B去执某个我们预期的任务并返回结 果。这时候,线程A可能正在忙其他的事情,无暇顾及B的结果,所以我们会很自然的希望能够在某个特定的时间获得线程B的结果。在 C++11 的 std::future之前,通常的做法是:创建线程A,在线程A启动任务 B,当准备完毕后发送一个事件,并将结果保存在全局变量中。主函数线程A正在做其他的事情,当需要结果的时候,调用一个线...

2018-07-27 16:14:47 776

转-压箱底的音视频学习资料, c++音视频学习资料

转-压箱底的音视频学习资料,cpp音视频学习资料

2022-02-28

2020CPP.pdf

C++全球开发者大会的资料,嘉宾演讲稿合集(2020年),pdf共1566页

2021-04-16

武汉大学额933 计算机考研 学校历年题目(2).pdf

总共2个pdf,这个160多页。

2021-03-17

武汉大学额933 计算机考研 学校历年题目(1).pdf

总共2个pdf,这个170页。

2021-03-17

武汉大学932软件工程考研资料

武汉大学计算机考研资料

2017-01-07

Neural Networks for Machine Learning字幕

Neural Networks for Machine Learning字幕

2016-12-16

linux的rpm软件安装的方法

linux的rpm软件安装的方法,RPM 有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证。 下面我们就来逐一的讲解吧。

2013-11-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除